Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Operating system</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Operating_system"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.imagemap.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Operating_system rootpage-Operating_system skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Operating system</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">

</p>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */


.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks"><tbody><tr><th class="sidebar-title"></th></tr><tr><td class="sidebar-image"></td></tr><tr><th class="sidebar-heading" style="font-size:110%;">
Common features</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Process_management_(computing)" title="Process management (computing)">Process management</a></li>
<li><a href="Interrupt" title="Interrupt">Interrupts</a></li>
<li><a href="Memory_management" title="Memory management">Memory management</a></li>
<li><a href="File_system" title="File system">File system</a></li>
<li><a href="Device_driver" title="Device driver">Device drivers</a></li>
<li><a href="Computer_network" title="Computer network">Networking</a></li>
<li><a href="Computer_security" title="Computer security">Security</a></li>
<li><a href="Input/output" title="Input/output">Input/output</a></li></ul></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<p>An <b>operating system</b> (<b>OS</b>) is <a href="System_software" title="System software">system software</a> that manages <a href="Computer_hardware" title="Computer hardware">computer hardware</a> and <a href="Software" title="Software">software</a> resources, and provides common <a href="Daemon_(computing)" title="Daemon (computing)">services</a> for <a href="Computer_program" title="Computer program">computer programs</a>.
</p><p><a href="Time-sharing" title="Time-sharing">Time-sharing</a> operating systems <a href="Scheduler_(computing)" class="mw-redirect" title="Scheduler (computing)">schedule tasks</a> for efficient use of the system and may also include accounting software for cost allocation of <a href="Scheduling_(computing)" title="Scheduling (computing)">processor time</a>, <a href="Mass_storage" title="Mass storage">mass storage</a>, peripherals, and other resources.
</p><p>For hardware functions such as <a href="Input_and_output" class="mw-redirect" title="Input and output">input and output</a> and <a href="Memory_allocation" class="mw-redirect" title="Memory allocation">memory allocation</a>, the operating system acts as an intermediary between programs and the computer hardware,<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> although the application code is usually executed directly by the hardware and frequently makes <a href="System_call" title="System call">system calls</a> to an OS function or is <a href="Interrupt" title="Interrupt">interrupted</a> by it. Operating systems are found on many devices that contain a computer&nbsp;– from cellular phones and video game consoles to <a href="Web_server" title="Web server">web servers</a> and <a href="Supercomputer" title="Supercomputer">supercomputers</a>.
</p><p>As of September&nbsp;2024, <a href="Android_(operating_system)" title="Android (operating system)">Android</a> is the most popular operating system with a 46% market share, followed by <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> at 26%, <a href="IOS" title="IOS">iOS</a> and <a href="IPadOS" title="IPadOS">iPadOS</a> at 18%, <a href="MacOS" title="MacOS">macOS</a> at 5%, and <a href="Linux" title="Linux">Linux</a> at 1%. Android, iOS, and iPadOS are mobile operating systems, while Windows, macOS, and Linux are desktop operating systems.<sup id="cite_ref-gs.statcounter.com_3-0" class="reference"><a href="#cite_note-gs.statcounter.com-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> <a href="Linux_distribution" title="Linux distribution">Linux distributions</a> are dominant in the server and supercomputing sectors. Other specialized classes of operating systems (special-purpose operating systems),<sup id="cite_ref-auto_4-0" class="reference"><a href="#cite_note-auto-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> such as <a href="Embedded_system" title="Embedded system">embedded</a> and real-time systems, exist for many applications. <a href="Security-focused_operating_system" title="Security-focused operating system">Security-focused operating systems</a> also exist. Some operating systems have low system requirements (e.g. <a href="Light-weight_Linux_distribution" class="mw-redirect" title="Light-weight Linux distribution">light-weight Linux distribution</a>). Others may have higher system requirements.
</p><p>Some operating systems require installation or may come pre-installed with purchased computers (<a href="OEM" class="mw-redirect" title="OEM">OEM</a>-installation), whereas others may run directly from media (i.e. <a href="Live_CD" title="Live CD">live CD</a>) or flash memory (i.e. a LiveUSB from a <a href="USB_flash_drive" title="USB flash drive">USB</a> stick).
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Definition_and_purpose">Definition and purpose</h2></div>
<p>An operating system is difficult to define,<sup id="cite_ref-FOOTNOTETanenbaumBos20234_6-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20234-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> but has been called "the <a href="Abstraction_layer" title="Abstraction layer">layer of software</a> that manages a computer's resources for its users and their <a href="Application_software" title="Application software">applications</a>".<sup id="cite_ref-FOOTNOTEAndersonDahlin20146_7-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin20146-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> Operating systems include the software that is always running, called a <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a>—but can include other software as well.<sup id="cite_ref-FOOTNOTETanenbaumBos20234_6-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20234-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTESilberschatz_et_al.20186_8-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.20186-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> The two other types of programs that can run on a computer are <a href="System_software" title="System software">system programs</a>—which are associated with the operating system, but may not be part of the kernel—and applications—all other software.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.20186_8-1" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.20186-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>There are three main purposes that an operating system fulfills:<sup id="cite_ref-FOOTNOTEAndersonDahlin20147_9-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin20147-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Operating systems allocate resources between different applications, deciding when they will receive <a href="Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU) time or space in <a href="Computer_memory" title="Computer memory">memory</a>.<sup id="cite_ref-FOOTNOTEAndersonDahlin20147_9-1" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin20147-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> On modern <a href="Personal_computer" title="Personal computer">personal computers</a>, users often want to run several applications at once. In order to ensure that one program cannot monopolize the computer's limited hardware resources, the operating system gives each application a share of the resource, either in time (CPU) or space (memory).<sup id="cite_ref-FOOTNOTEAndersonDahlin20149–10_10-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin20149–10-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTETanenbaumBos20236–7_11-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20236–7-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> The operating system also must isolate applications from each other to protect them from errors and security vulnerabilities in another application's code, but enable communications between different applications.<sup id="cite_ref-FOOTNOTEAndersonDahlin201410_12-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201410-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li>
<li>Operating systems provide an interface that abstracts the details of accessing <a href="Computer_hardware" title="Computer hardware">hardware</a> details (such as physical memory) to make things easier for programmers.<sup id="cite_ref-FOOTNOTEAndersonDahlin20147_9-2" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin20147-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTETanenbaumBos20235_13-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20235-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <a href="Virtualization" title="Virtualization">Virtualization</a> also enables the operating system to mask limited hardware resources; for example, <a href="Virtual_memory" title="Virtual memory">virtual memory</a> can provide a program with the illusion of nearly unlimited memory that exceeds the computer's actual memory.<sup id="cite_ref-FOOTNOTEAndersonDahlin201411_14-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201411-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup></li>
<li>Operating systems provide common services, such as an interface for accessing network and disk devices. This enables an application to be run on different hardware without needing to be rewritten.<sup id="cite_ref-FOOTNOTEAndersonDahlin20147,_9,_13_15-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin20147,_9,_13-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Which services to include in an operating system varies greatly, and this functionality makes up the great majority of code for most operating systems.<sup id="cite_ref-FOOTNOTEAndersonDahlin201412–13_16-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201412–13-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Types_of_operating_systems">Types of operating systems</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Multicomputer_operating_systems">Multicomputer operating systems</h3></div>
<p>With <a href="Multiprocessor" class="mw-redirect" title="Multiprocessor">multiprocessors</a> multiple CPUs share memory. A <a href="Multicomputer" class="mw-redirect" title="Multicomputer">multicomputer</a> or <a href="Cluster_computer" class="mw-redirect" title="Cluster computer">cluster computer</a> has multiple CPUs, each of which <a href="Distributed_memory" title="Distributed memory">has its own memory</a>. Multicomputers were developed because large multiprocessors are difficult to engineer and prohibitively expensive;<sup id="cite_ref-FOOTNOTETanenbaumBos2023557_17-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023557-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> they are universal in <a href="Cloud_computing" title="Cloud computing">cloud computing</a> because of the size of the machine needed.<sup id="cite_ref-FOOTNOTETanenbaumBos2023558_18-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023558-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> The different CPUs often need to send and receive messages to each other;<sup id="cite_ref-FOOTNOTETanenbaumBos2023565_19-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023565-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> to ensure good performance, the operating systems for these machines need to minimize this copying of <a href="Network_packet" title="Network packet">packets</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos2023562_20-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023562-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> Newer systems are often multiqueue—separating groups of users into separate <a href="Priority_queue" title="Priority queue">queues</a>—to reduce the need for packet copying and support more concurrent users.<sup id="cite_ref-FOOTNOTETanenbaumBos2023563_21-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023563-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> Another technique is <a href="Remote_direct_memory_access" title="Remote direct memory access">remote direct memory access</a>, which enables each CPU to access memory belonging to other CPUs.<sup id="cite_ref-FOOTNOTETanenbaumBos2023565_19-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023565-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> Multicomputer operating systems often support <a href="Remote_procedure_call" title="Remote procedure call">remote procedure calls</a> where a CPU can call a <a href="Procedural_programming" title="Procedural programming">procedure</a> on another CPU,<sup id="cite_ref-FOOTNOTETanenbaumBos2023569_22-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023569-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> or <a href="Distributed_shared_memory" title="Distributed shared memory">distributed shared memory</a>, in which the operating system uses <a href="Virtualization" title="Virtualization">virtualization</a> to generate shared memory that does not physically exist.<sup id="cite_ref-FOOTNOTETanenbaumBos2023571_23-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023571-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Distributed_systems">Distributed systems</h3></div>
<p>A <a href="Distributed_system" class="mw-redirect" title="Distributed system">distributed system</a> is a group of distinct, <a href="Computer_network" title="Computer network">networked</a> computers—each of which might have their own operating system and file system. Unlike multicomputers, they may be dispersed anywhere in the world.<sup id="cite_ref-FOOTNOTETanenbaumBos2023579_24-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023579-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> <a href="Middleware" title="Middleware">Middleware</a>, an additional software layer between the operating system and applications, is often used to improve consistency. Although it functions similarly to an operating system, it is not a true operating system.<sup id="cite_ref-FOOTNOTETanenbaumBos2023581_25-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023581-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Embedded">Embedded</h3></div>
<p><a href="Embedded_operating_system" title="Embedded operating system">Embedded operating systems</a> are designed to be used in <a href="Embedded_system" title="Embedded system">embedded computer systems</a>, whether they are <a href="Internet_of_things" title="Internet of things">internet of things</a> objects or not connected to a network. Embedded systems include many household appliances. The distinguishing factor is that they do not load user-installed software. Consequently, they do not need protection between different applications, enabling simpler designs. Very small operating systems might run in less than 10 <a href="Kilobytes" class="mw-redirect" title="Kilobytes">kilobytes</a>,<sup id="cite_ref-FOOTNOTETanenbaumBos202337–38_26-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202337–38-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> and the smallest are for <a href="Smart_cards" class="mw-redirect" title="Smart cards">smart cards</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos202339_27-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202339-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> Examples include <a href="Embedded_Linux" class="mw-redirect" title="Embedded Linux">Embedded Linux</a>, <a href="QNX" title="QNX">QNX</a>, <a href="VxWorks" title="VxWorks">VxWorks</a>, and the extra-small systems <a href="RIOT_(operating_system)" title="RIOT (operating system)">RIOT</a> and <a href="TinyOS" title="TinyOS">TinyOS</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos202338_28-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202338-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Real-time">Real-time</h3></div>
<p>A <a href="Real-time_operating_system" title="Real-time operating system">real-time operating system</a> is an operating system that guarantees to process <a href="Event_(computing)" title="Event (computing)">events</a> or data by or at a specific moment in time. Hard real-time systems require exact timing and are common in <a href="Manufacturing" title="Manufacturing">manufacturing</a>, <a href="Avionics" title="Avionics">avionics</a>, military, and other similar uses.<sup id="cite_ref-FOOTNOTETanenbaumBos202338_28-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202338-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> With soft real-time systems, the occasional missed event is acceptable; this category often includes audio or multimedia systems, as well as smartphones.<sup id="cite_ref-FOOTNOTETanenbaumBos202338_28-2" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202338-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> In order for hard real-time systems be sufficiently exact in their timing, often they are just a library with no protection between applications, such as <a href="ECos" title="ECos">eCos</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos202338_28-3" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202338-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Hypervisor">Hypervisor</h3></div>
<p>A <a href="Hypervisor" title="Hypervisor">hypervisor</a> is an operating system that runs a <a href="Virtual_machine" title="Virtual machine">virtual machine</a>. The virtual machine is unaware that it is an application and operates as if it had its own hardware.<sup id="cite_ref-FOOTNOTEAndersonDahlin201411_14-1" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201411-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018701_29-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018701-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> Virtual machines can be paused, saved, and resumed, making them useful for operating systems research, development,<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018705_30-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018705-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> and debugging.<sup id="cite_ref-FOOTNOTEAndersonDahlin201412_31-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201412-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> They also enhance portability by enabling applications to be run on a computer even if they are not compatible with the base operating system.<sup id="cite_ref-FOOTNOTEAndersonDahlin201411_14-2" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201411-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Library">Library</h3></div>
<p>A <i>library operating system</i> (libOS) is one in which the services that a typical operating system provides, such as networking, are provided in the form of <a href="Library_(computing)" title="Library (computing)">libraries</a> and composed with a single application and configuration code to construct a <a href="Unikernel" title="Unikernel">unikernel</a>:
<sup id="cite_ref-Unikernels_32-0" class="reference"><a href="#cite_note-Unikernels-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> a specialized (only the absolute necessary pieces of code are extracted from libraries and bound together
<sup id="cite_ref-Unikraft-Build-Process_33-0" class="reference"><a href="#cite_note-Unikraft-Build-Process-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup>), <a href="Single_address_space_operating_system" title="Single address space operating system">single address space</a>, machine image that can be deployed to cloud or embedded environments.
</p><p>The operating system code and application code are not executed in separated <a href="Protection_ring" title="Protection ring">protection domains</a> (there is only a single application running, at least conceptually, so there is no need to prevent interference between applications) and OS services are accessed via simple library calls (potentially <a href="Inline_expansion" title="Inline expansion">inlining</a> them based on compiler thresholds), without the usual overhead of <a href="Context_switch" title="Context switch">context switches</a>,
<sup id="cite_ref-rise-of-libOS_34-0" class="reference"><a href="#cite_note-rise-of-libOS-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> in a way similarly to embedded and real-time OSes. Note that this overhead is not negligible: to the direct cost of mode switching it's necessary to add the indirect pollution of important processor structures (like <a href="CPU_cache" title="CPU cache">CPU caches</a>, the <a href="Instruction_pipelining" title="Instruction pipelining">instruction pipeline</a>, and so on) which affects both user-mode and kernel-mode performance.
<sup id="cite_ref-FlexSC_35-0" class="reference"><a href="#cite_note-FlexSC-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="History_of_operating_systems" title="History of operating systems">History of operating systems</a></div>

<p>The first computers in the late 1940s and 1950s were directly programmed either with <a href="Plugboard" title="Plugboard">plugboards</a> or with <a href="Machine_code" title="Machine code">machine code</a> inputted on media such as <a href="Punch_card" class="mw-redirect" title="Punch card">punch cards</a>, without <a href="Programming_language" title="Programming language">programming languages</a> or operating systems.<sup id="cite_ref-FOOTNOTETanenbaumBos20238_36-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20238-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> After the introduction of the <a href="Transistor" title="Transistor">transistor</a> in the mid-1950s, <a href="Mainframe" class="mw-redirect" title="Mainframe">mainframes</a> began to be built. These still needed professional operators<sup id="cite_ref-FOOTNOTETanenbaumBos20238_36-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20238-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> who manually do what a modern operating system would do, such as scheduling programs to run,<sup id="cite_ref-OSTEP_book_37-0" class="reference"><a href="#cite_note-OSTEP_book-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> but mainframes still had rudimentary operating systems such as <a href="Fortran_Monitor_System" class="mw-redirect" title="Fortran Monitor System">Fortran Monitor System</a> (FMS) and <a href="IBSYS" class="mw-redirect" title="IBSYS">IBSYS</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos202310_38-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202310-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> In the 1960s, <a href="IBM" title="IBM">IBM</a> introduced the first series of intercompatible computers (<a href="System/360" class="mw-redirect" title="System/360">System/360</a>). All of them ran the same operating system—<a href="OS/360" class="mw-redirect" title="OS/360">OS/360</a>—which consisted of millions of lines of <a href="Assembly_language" title="Assembly language">assembly language</a> that had thousands of <a href="Software_bug" title="Software bug">bugs</a>. The OS/360 also was the first popular operating system to support <a href="Multiprogramming" class="mw-redirect" title="Multiprogramming">multiprogramming</a>, such that the CPU could be put to use on one job while another was waiting on <a href="Input/output" title="Input/output">input/output</a> (I/O). Holding multiple jobs in <a href="Memory_(computing)" class="mw-redirect" title="Memory (computing)">memory</a> necessitated memory partitioning and safeguards against one job accessing the memory allocated to a different one.<sup id="cite_ref-FOOTNOTETanenbaumBos202311–12_39-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202311–12-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup>
</p><p>Around the same time, <a href="Teleprinter" title="Teleprinter">teleprinters</a> began to be used as <a href="Computer_terminal" title="Computer terminal">terminals</a> so multiple users could access the computer simultaneously. The operating system <a href="MULTICS" class="mw-redirect" title="MULTICS">MULTICS</a> was intended to allow hundreds of users to access a large computer. Despite its limited adoption, it can be considered the precursor to <a href="Cloud_computing" title="Cloud computing">cloud computing</a>. The <a href="UNIX" class="mw-redirect" title="UNIX">UNIX</a> operating system originated as a development of MULTICS for a single user.<sup id="cite_ref-FOOTNOTETanenbaumBos202313–14_40-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202313–14-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> Because UNIX's <a href="Source_code" title="Source code">source code</a> was available, it became the basis of other, incompatible operating systems, of which the most successful were <a href="AT%26T" title="AT&amp;T">AT&amp;T</a>'s <a href="System_V" class="mw-redirect" title="System V">System V</a> and the <a href="University_of_California" title="University of California">University of California</a>'s <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">Berkeley Software Distribution</a> (BSD).<sup id="cite_ref-FOOTNOTETanenbaumBos202314–15_41-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202314–15-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> To increase compatibility, the <a href="IEEE" class="mw-redirect" title="IEEE">IEEE</a> released the <a href="POSIX" title="POSIX">POSIX</a> standard for operating system <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interfaces</a> (APIs), which is supported by most UNIX systems. <a href="MINIX" class="mw-redirect" title="MINIX">MINIX</a> was a stripped-down version of UNIX, developed in 1987 for educational uses, that inspired the commercially available, <a href="Free_software" title="Free software">free software</a> <a href="Linux" title="Linux">Linux</a>. Since 2008, MINIX is used in controllers of most <a href="Intel" title="Intel">Intel</a> <a href="Microchips" class="mw-redirect" title="Microchips">microchips</a>, while Linux is widespread in <a href="Data_center" title="Data center">data centers</a> and <a href="Android_(operating_system)" title="Android (operating system)">Android</a> smartphones.<sup id="cite_ref-FOOTNOTETanenbaumBos202315_42-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202315-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Microcomputers">Microcomputers</h3></div>


<p>The invention of <a href="Large_scale_integration" class="mw-redirect" title="Large scale integration">large scale integration</a> enabled the production of <a href="Personal_computer" title="Personal computer">personal computers</a> (initially called <a href="Microcomputer" title="Microcomputer">microcomputers</a>) from around 1980.<sup id="cite_ref-FOOTNOTETanenbaumBos202315–16_43-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202315–16-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup> For around five years, the <a href="CP/M" title="CP/M">CP/M</a> (Control Program for Microcomputers) was the most popular operating system for microcomputers.<sup id="cite_ref-FOOTNOTETanenbaumBos202316_44-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202316-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> Later, IBM bought the <a href="DOS" title="DOS">DOS</a> (Disk Operating System) from <a href="Microsoft" title="Microsoft">Microsoft</a>. After modifications requested by IBM, the resulting system was called <a href="MS-DOS" title="MS-DOS">MS-DOS</a> (MicroSoft Disk Operating System) and was widely used on IBM microcomputers. Later versions increased their sophistication, in part by borrowing features from UNIX.<sup id="cite_ref-FOOTNOTETanenbaumBos202316_44-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202316-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Apple_Inc." title="Apple Inc.">Apple</a>'s <a href="Macintosh" class="mw-redirect" title="Macintosh">Macintosh</a> was the first popular computer to use a <a href="Graphical_user_interface" title="Graphical user interface">graphical user interface</a> (GUI). The GUI proved much more <a href="User_friendly" class="mw-redirect" title="User friendly">user friendly</a> than the text-only <a href="Command-line_interface" title="Command-line interface">command-line interface</a> earlier operating systems had used. Following the success of Macintosh, MS-DOS was updated with a GUI overlay called <a href="Windows" class="mw-redirect" title="Windows">Windows</a>. Windows later was rewritten as a stand-alone operating system, borrowing so many features from another (<a href="VAX_VMS" class="mw-redirect" title="VAX VMS">VAX VMS</a>) that a large <a href="Legal_settlement" class="mw-redirect" title="Legal settlement">legal settlement</a> was paid.<sup id="cite_ref-FOOTNOTETanenbaumBos202317_45-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202317-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> In the twenty-first century, Windows continues to be popular on personal computers but has less <a href="Market_share" title="Market share">market share</a> of servers. UNIX operating systems, especially Linux, are the most popular on <a href="Enterprise_system" class="mw-redirect" title="Enterprise system">enterprise systems</a> and servers but are also used on <a href="Mobile_device" title="Mobile device">mobile devices</a> and many other computer systems.<sup id="cite_ref-FOOTNOTETanenbaumBos202318_46-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202318-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup>
</p><p>On mobile devices, <a href="Symbian_OS" class="mw-redirect" title="Symbian OS">Symbian OS</a> was dominant at first, being usurped by <a href="BlackBerry_OS" title="BlackBerry OS">BlackBerry OS</a> (introduced 2002) and <a href="IOS" title="IOS">iOS</a> for <a href="IPhone" title="IPhone">iPhones</a> (from 2007). Later on, the open-source <a href="Android_(operating_system)" title="Android (operating system)">Android</a> operating system (introduced 2008), with a Linux kernel and a C library (<a href="Bionic_(software)" title="Bionic (software)">Bionic</a>) partially based on BSD code, became most popular.<sup id="cite_ref-FOOTNOTETanenbaumBos202319–20_47-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos202319–20-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Components">Components</h2></div>
<p>The components of an operating system are designed to ensure that various parts of a computer function cohesively. With the de facto obsoletion of <a href="Disk_Operating_System" class="mw-redirect" title="Disk Operating System">DOS</a>, all user <a href="Software" title="Software">software</a> must interact with the operating system to access hardware.
</p>
<div class="mw-heading mw-heading3"><h3 id="Kernel">Kernel</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Kernel_(operating_system)" title="Kernel (operating system)">Kernel (operating system)</a></div>

<p>The kernel is the part of the operating system that provides <a href="Protection_ring" title="Protection ring">protection</a> between different applications and users. This protection is key to improving reliability by keeping errors isolated to one program, as well as security by limiting the power of <a href="Malicious_software" class="mw-redirect" title="Malicious software">malicious software</a> and protecting private data, and ensuring that one program cannot monopolize the computer's resources.<sup id="cite_ref-FOOTNOTEAndersonDahlin201439–40_48-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201439–40-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> Most operating systems have two modes of operation:<sup id="cite_ref-FOOTNOTETanenbaumBos20232_49-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20232-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup> in <a href="User_mode" class="mw-redirect" title="User mode">user mode</a>, the hardware checks that the software is only executing legal instructions, whereas the kernel has <a href="Privilege_(computing)" title="Privilege (computing)">unrestricted powers</a> and is not subject to these checks.<sup id="cite_ref-FOOTNOTEAndersonDahlin201441,_45_50-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201441,_45-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup> The kernel also manages <a href="Random-access_memory" title="Random-access memory">memory</a> for other processes and controls access to <a href="Input/output" title="Input/output">input/output</a> devices.<sup id="cite_ref-FOOTNOTEAndersonDahlin201452–53_51-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin201452–53-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Program_execution">Program execution</h4></div>
<p>The operating system provides an interface between an application program and the computer hardware, so that an application program can interact with the hardware only by obeying rules and procedures programmed into the operating system. The operating system is also a set of services which simplify development and execution of application programs. Executing an application program typically involves the creation of a <a href="Process_(computing)" title="Process (computing)">process</a> by the operating system <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a>, which assigns memory space and other resources, establishes a priority for the process in multi-tasking systems, loads program binary code into memory, and initiates execution of the application program, which then interacts with the user and with hardware devices. However, in some systems an application can request that the operating system execute another application within the same process, either as a subroutine or in a separate thread, e.g., the <b>LINK</b> and <b>ATTACH</b> facilities of <a href="OS/360_and_successors" title="OS/360 and successors">OS/360 and successors</a>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Interrupts">Interrupts</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Interrupt" title="Interrupt">Interrupt</a></div>
<p>An <a href="Interrupt" title="Interrupt">interrupt</a> (also known as an <a href="Abort_(computing)" title="Abort (computing)">abort</a>, <a href="Exception_handling" title="Exception handling">exception</a>, <i>fault</i>, <a href="Signal_(IPC)" title="Signal (IPC)">signal</a>,<sup id="cite_ref-lpi-ch20-p388_quote1_52-0" class="reference"><a href="#cite_note-lpi-ch20-p388_quote1-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> or <i>trap</i>)<sup id="cite_ref-Hyde_1996_53-0" class="reference"><a href="#cite_note-Hyde_1996-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> provides an efficient way for most operating systems to react to the environment. Interrupts cause the <a href="Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU) to have a <a href="Control_flow" title="Control flow">control flow</a> change away from the currently running program to an <a href="Interrupt_handler" title="Interrupt handler">interrupt handler</a>, also known as an interrupt service routine (ISR).<sup id="cite_ref-sco-ch5-p308_a_54-0" class="reference"><a href="#cite_note-sco-ch5-p308_a-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-osc-ch2-p32_a_55-0" class="reference"><a href="#cite_note-osc-ch2-p32_a-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup> An interrupt service routine may cause the <a href="Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU) to have a <a href="Context_switch" title="Context switch">context switch</a>.<sup id="cite_ref-osc-ch4-p105_56-0" class="reference"><a href="#cite_note-osc-ch4-p105-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-57" class="reference"><a href="#cite_note-57"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup> The details of how a computer processes an interrupt vary from architecture to architecture, and the details of how interrupt service routines behave vary from operating system to operating system.<sup id="cite_ref-osc-ch2-p31_58-0" class="reference"><a href="#cite_note-osc-ch2-p31-58"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup> However, several interrupt functions are common.<sup id="cite_ref-osc-ch2-p31_58-1" class="reference"><a href="#cite_note-osc-ch2-p31-58"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup> The architecture and operating system must:<sup id="cite_ref-osc-ch2-p31_58-2" class="reference"><a href="#cite_note-osc-ch2-p31-58"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup>
</p>
<ol><li>transfer control to an interrupt service routine.</li>
<li>save the state of the currently running process.</li>
<li>restore the state after the interrupt is serviced.</li></ol>
<div class="mw-heading mw-heading5"><h5 id="Software_interrupt">Software interrupt</h5></div>
<p>A software interrupt is a message to a <a href="Process_(computing)" title="Process (computing)">process</a> that an event has occurred.<sup id="cite_ref-lpi-ch20-p388_quote1_52-1" class="reference"><a href="#cite_note-lpi-ch20-p388_quote1-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> This contrasts with a <i>hardware interrupt</i> — which is a message to the <a href="Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU) that an event has occurred.<sup id="cite_ref-osc-ch2-p30_59-0" class="reference"><a href="#cite_note-osc-ch2-p30-59"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup> Software interrupts are similar to hardware interrupts — there is a change away from the currently running process.<sup id="cite_ref-lpi-ch20-p388_quote2_60-0" class="reference"><a href="#cite_note-lpi-ch20-p388_quote2-60"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup> Similarly, both hardware and software interrupts execute an <a href="Interrupt_handler" title="Interrupt handler">interrupt service routine</a>.
</p><p>Software interrupts may be normally occurring events. It is expected that a <a href="Preemption_(computing)#Time_slice" title="Preemption (computing)">time slice</a> will occur, so the kernel will have to perform a <a href="Context_switch" title="Context switch">context switch</a>.<sup id="cite_ref-lpi-ch20-p388_quote3_61-0" class="reference"><a href="#cite_note-lpi-ch20-p388_quote3-61"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup> A <a href="Computer_program" title="Computer program">computer program</a> may set a timer to go off after a few seconds in case too much data causes an algorithm to take too long.<sup id="cite_ref-lpi-ch20-p388_62-0" class="reference"><a href="#cite_note-lpi-ch20-p388-62"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup>
</p><p>Software interrupts may be error conditions, such as a malformed <a href="Machine_code" title="Machine code">machine instruction</a>.<sup id="cite_ref-lpi-ch20-p388_62-1" class="reference"><a href="#cite_note-lpi-ch20-p388-62"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup> However, the most common error conditions are <a href="Division_by_zero" title="Division by zero">division by zero</a> and <a href="Segmentation_fault" title="Segmentation fault">accessing an invalid memory address</a>.<sup id="cite_ref-lpi-ch20-p388_62-2" class="reference"><a href="#cite_note-lpi-ch20-p388-62"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup>
</p><p><a href="User_(computing)" title="User (computing)">Users</a> can send messages to the kernel to modify the behavior of a currently running process.<sup id="cite_ref-lpi-ch20-p388_62-3" class="reference"><a href="#cite_note-lpi-ch20-p388-62"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup> For example, in the <a href="Command-line_interface" title="Command-line interface">command-line environment</a>, pressing the <i>interrupt character</i> (usually <a href="Control-C" title="Control-C">Control-C</a>) might terminate the currently running process.<sup id="cite_ref-lpi-ch20-p388_62-4" class="reference"><a href="#cite_note-lpi-ch20-p388-62"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup>
</p><p>To generate <i>software interrupts</i> for <a href="X86" title="X86">x86</a> CPUs, the <a href="INT_(x86_instruction)" title="INT (x86 instruction)">INT</a> <a href="Assembly_language" title="Assembly language">assembly language</a> instruction is available.<sup id="cite_ref-intel-developer_63-0" class="reference"><a href="#cite_note-intel-developer-63"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup> The syntax is <code>INT X</code>, where <code>X</code> is the offset number (in <a href="Hexadecimal" title="Hexadecimal">hexadecimal</a> format) to the <a href="Interrupt_vector_table" title="Interrupt vector table">interrupt vector table</a>.
</p>
<div class="mw-heading mw-heading5"><h5 id="Signal">Signal</h5></div>
<p>To generate <i>software interrupts</i> in <a href="Unix-like" title="Unix-like">Unix-like</a> operating systems, the <code>kill(pid,signum)</code> <a href="System_call" title="System call">system call</a> will send a <a href="Signal_(IPC)" title="Signal (IPC)">signal</a> to another process.<sup id="cite_ref-duos-p200_64-0" class="reference"><a href="#cite_note-duos-p200-64"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup> <code>pid</code> is the <a href="Process_identifier" title="Process identifier">process identifier</a> of the receiving process. <code>signum</code> is the signal number (in <a href="Mnemonic" title="Mnemonic">mnemonic</a> format)<sup id="cite_ref-65" class="reference"><a href="#cite_note-65"><span class="cite-bracket">[</span>b<span class="cite-bracket">]</span></a></sup> to be sent. (The abrasive name of <code>kill</code> was chosen because early implementations only terminated the process.)<sup id="cite_ref-lpi-ch20-p400_66-0" class="reference"><a href="#cite_note-lpi-ch20-p400-66"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup>
</p><p>In Unix-like operating systems, <i>signals</i> inform processes of the occurrence of asynchronous events.<sup id="cite_ref-duos-p200_64-1" class="reference"><a href="#cite_note-duos-p200-64"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup> To communicate asynchronously, interrupts are required.<sup id="cite_ref-sco-ch5-p308_b_67-0" class="reference"><a href="#cite_note-sco-ch5-p308_b-67"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup> One reason a process needs to asynchronously communicate to another process solves a variation of the classic <a href="Readers%E2%80%93writers_problem" title="Readers–writers problem">reader/writer problem</a>.<sup id="cite_ref-osc-p182_68-0" class="reference"><a href="#cite_note-osc-p182-68"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup> The writer receives a pipe from the <a href="Shell_(computing)" title="Shell (computing)">shell</a> for its output to be sent to the reader's input stream.<sup id="cite_ref-usp-ch6-p153_69-0" class="reference"><a href="#cite_note-usp-ch6-p153-69"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup> The <a href="Command-line_interface" title="Command-line interface">command-line</a> syntax is <code>alpha | bravo</code>. <code>alpha</code> will write to the pipe when its computation is ready and then sleep in the wait queue.<sup id="cite_ref-usp-ch6-p148_70-0" class="reference"><a href="#cite_note-usp-ch6-p148-70"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup> <code>bravo</code> will then be moved to the <a href="Multilevel_feedback_queue" title="Multilevel feedback queue">ready queue</a> and soon will read from its input stream.<sup id="cite_ref-usp-ch6-p149_71-0" class="reference"><a href="#cite_note-usp-ch6-p149-71"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup> The kernel will generate <i>software interrupts</i> to coordinate the piping.<sup id="cite_ref-usp-ch6-p149_71-1" class="reference"><a href="#cite_note-usp-ch6-p149-71"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup>
</p><p><i>Signals</i> may be classified into 7 categories.<sup id="cite_ref-duos-p200_64-2" class="reference"><a href="#cite_note-duos-p200-64"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup> The categories are:
</p>
<ol><li>when a process finishes normally.</li>
<li>when a process has an error exception.</li>
<li>when a process runs out of a system resource.</li>
<li>when a process executes an illegal instruction.</li>
<li>when a process sets an alarm event.</li>
<li>when a process is aborted from the keyboard.</li>
<li>when a process has a tracing alert for debugging.</li></ol>
<div class="mw-heading mw-heading5"><h5 id="Hardware_interrupt">Hardware interrupt</h5></div>
<p><a href="Input/output" title="Input/output">Input/output</a> (I/O) <a href="Peripheral" title="Peripheral">devices</a> are slower than the CPU. Therefore, it would slow down the computer if the CPU had to <a href="Busy_waiting" title="Busy waiting">wait</a> for each I/O to finish. Instead, a computer may implement interrupts for I/O completion, avoiding the need for <a href="Polling_(computer_science)" title="Polling (computer science)">polling</a> or busy waiting.<sup id="cite_ref-sco-ch5-p292_72-0" class="reference"><a href="#cite_note-sco-ch5-p292-72"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup>
</p><p>Some computers require an interrupt for each character or word, costing a significant amount of CPU time. <a href="Direct_memory_access" title="Direct memory access">Direct memory access</a> (DMA) is an architecture feature to allow devices to bypass the CPU and access <a href="Random-access_memory" title="Random-access memory">main memory</a> directly.<sup id="cite_ref-A22-6821-7-storage_73-0" class="reference"><a href="#cite_note-A22-6821-7-storage-73"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup> (Separate from the architecture, a device may perform direct memory access<sup id="cite_ref-74" class="reference"><a href="#cite_note-74"><span class="cite-bracket">[</span>c<span class="cite-bracket">]</span></a></sup> to and from main memory either directly or via a bus.)<sup id="cite_ref-sco-ch5-p294_75-0" class="reference"><a href="#cite_note-sco-ch5-p294-75"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite-bracket">[</span>d<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Input/output">Input/output</h4></div>
<div class="mw-heading mw-heading5"><h5 id="Interrupt-driven_I/O">Interrupt-driven I/O</h5></div>
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>When a <a href="User_(computing)" title="User (computing)">computer user</a> types a key on the keyboard, typically the character appears immediately on the screen. Likewise, when a user moves a <a href="Computer_mouse" title="Computer mouse">mouse</a>, the <a href="Cursor_(user_interface)" title="Cursor (user interface)">cursor</a> immediately moves across the screen. Each keystroke and mouse movement generates an <i>interrupt</i> called <i>Interrupt-driven I/O</i>. An interrupt-driven I/O occurs when a process causes an interrupt for every character<sup id="cite_ref-sco-ch5-p294_75-1" class="reference"><a href="#cite_note-sco-ch5-p294-75"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup> or word<sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup> transmitted.
</p>
<div class="mw-heading mw-heading5"><h5 id="Direct_memory_access">Direct memory access</h5></div>
<p>Devices such as <a href="Hard_disk_drive" title="Hard disk drive">hard disk drives</a>, <a href="Solid-state_drive" title="Solid-state drive">solid-state drives</a>, and <a href="Magnetic_tape" title="Magnetic tape">magnetic tape</a> drives can transfer data at a rate high enough that interrupting the CPU for every byte or word transferred, and having the CPU transfer the byte or word between the device and memory, would require too much CPU time. Data is, instead, transferred between the device and memory independently of the CPU by hardware such as a <a href="Channel_I/O" title="Channel I/O">channel</a> or a <a href="Direct_memory_access" title="Direct memory access">direct memory access</a> controller; an interrupt is delivered only when all the data is transferred.<sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup>
</p><p>If a <a href="Computer_program" title="Computer program">computer program</a> executes a <a href="System_call" title="System call">system call</a> to perform a block I/O <i>write</i> operation, then the system call might execute the following instructions:
</p>
<ul><li>Set the contents of the CPU's <a href="Processor_register" title="Processor register">registers</a> (including the <a href="Program_counter" title="Program counter">program counter</a>) into the <a href="Process_control_block" title="Process control block">process control block</a>.<sup id="cite_ref-osc-ch2-p32_b_79-0" class="reference"><a href="#cite_note-osc-ch2-p32_b-79"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup></li>
<li>Create an entry in the device-status table.<sup id="cite_ref-osc-ch2-p34_80-0" class="reference"><a href="#cite_note-osc-ch2-p34-80"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup> The operating system maintains this table to keep track of which processes are waiting for which devices. One field in the table is the <a href="Memory_address" title="Memory address">memory address</a> of the process control block.</li>
<li>Place all the characters to be sent to the device into a <a href="Random-access_memory" title="Random-access memory">memory buffer</a>.<sup id="cite_ref-sco-ch5-p308_b_67-1" class="reference"><a href="#cite_note-sco-ch5-p308_b-67"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup></li>
<li>Set the memory address of the memory buffer to a predetermined device register.<sup id="cite_ref-sco-ch5-p295_81-0" class="reference"><a href="#cite_note-sco-ch5-p295-81"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup></li>
<li>Set the buffer size (an integer) to another predetermined register.<sup id="cite_ref-sco-ch5-p295_81-1" class="reference"><a href="#cite_note-sco-ch5-p295-81"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup></li>
<li>Execute the <a href="Machine_code" title="Machine code">machine instruction</a> to begin the writing.</li>
<li>Perform a <a href="Context_switch" title="Context switch">context switch</a> to the next process in the <a href="Multilevel_feedback_queue" title="Multilevel feedback queue">ready queue</a>.</li></ul>
<p>While the writing takes place, the operating system will context switch to other processes as normal. When the device finishes writing, the device will <i>interrupt</i> the currently running process by <i>asserting</i> an <a href="Interrupt_request_(PC_architecture)" class="mw-redirect" title="Interrupt request (PC architecture)">interrupt request</a>. The device will also place an integer onto the data bus.<sup id="cite_ref-sco-ch5-p309_82-0" class="reference"><a href="#cite_note-sco-ch5-p309-82"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup> Upon accepting the interrupt request, the operating system will:
</p>
<ul><li>Push the contents of the <a href="Program_counter" title="Program counter">program counter</a> (a register) followed by the <a href="Status_register" title="Status register">status register</a> onto the <a href="Call_stack" title="Call stack">call stack</a>.<sup id="cite_ref-osc-ch2-p31_58-3" class="reference"><a href="#cite_note-osc-ch2-p31-58"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup></li>
<li>Push the contents of the other registers onto the call stack. (Alternatively, the contents of the registers may be placed in a system table.)<sup id="cite_ref-sco-ch5-p309_82-1" class="reference"><a href="#cite_note-sco-ch5-p309-82"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup></li>
<li>Read the integer from the data bus. The integer is an offset to the <a href="Interrupt_vector_table" title="Interrupt vector table">interrupt vector table</a>. The vector table's instructions will then:</li></ul>
<dl><dd><ul><li>Access the device-status table.</li>
<li>Extract the process control block.</li>
<li>Perform a context switch back to the writing process.</li></ul></dd></dl>
<p>When the writing process has its <a href="Preemption_(computing)#time_slice" title="Preemption (computing)">time slice</a> expired, the operating system will:<sup id="cite_ref-sco-ch5-p310_83-0" class="reference"><a href="#cite_note-sco-ch5-p310-83"><span class="cite-bracket">[</span>79<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Pop from the call stack the registers other than the status register and program counter.</li>
<li>Pop from the call stack the status register.</li>
<li>Pop from the call stack the address of the next instruction, and set it back into the program counter.</li></ul>
<p>With the program counter now reset, the interrupted process will resume its time slice.<sup id="cite_ref-osc-ch2-p31_58-4" class="reference"><a href="#cite_note-osc-ch2-p31-58"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Memory_management">Memory management</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Memory_management" title="Memory management">Memory management</a></div>
<p>Among other things, a multiprogramming operating system <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a> must be responsible for managing all system memory which is currently in use by the programs. This ensures that a program does not interfere with memory already in use by another program. Since programs time share, each program must have independent access to memory.
</p><p>Cooperative memory management, used by many early operating systems, assumes that all programs make voluntary use of the <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a>'s memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen anymore, since programs often contain bugs which can cause them to exceed their allocated memory. If a program fails, it may cause memory used by one or more other programs to be affected or overwritten. Malicious programs or viruses may purposefully alter another program's memory, or may affect the operation of the operating system itself. With cooperative memory management, it takes only one misbehaved program to <a href="Crash_(computing)" title="Crash (computing)">crash</a> the system.
</p><p><a href="Memory_protection" title="Memory protection">Memory protection</a> enables the <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a> to limit a process' access to the computer's memory. Various methods of memory protection exist, including <a href="Memory_segmentation" title="Memory segmentation">memory segmentation</a> and <a href="Paging" class="mw-redirect" title="Paging">paging</a>. All methods require some level of hardware support (such as the <a href="80286" class="mw-redirect" title="80286">80286</a> MMU), which does not exist in all computers.
</p><p>In both segmentation and paging, certain <a href="Protected_mode" title="Protected mode">protected mode</a> registers specify to the CPU what memory address it should allow a running program to access. Attempts to access other addresses trigger an interrupt, which causes the CPU to re-enter <a href="Supervisor_mode" class="mw-redirect" title="Supervisor mode">supervisor mode</a>, placing the <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a> in charge. This is called a <a href="Segmentation_violation" class="mw-redirect" title="Segmentation violation">segmentation violation</a> or Seg-V for short, and since it is both difficult to assign a meaningful result to such an operation, and because it is usually a sign of a misbehaving program, the <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a> generally resorts to terminating the offending program, and reports the error.
</p><p>Windows versions 3.1 through ME had some level of memory protection, but programs could easily circumvent the need to use it. A <a href="General_protection_fault" title="General protection fault">general protection fault</a> would be produced, indicating a segmentation violation had occurred; however, the system would often crash anyway.
</p>
<div class="mw-heading mw-heading4"><h4 id="Virtual_memory">Virtual memory</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Virtual_memory" title="Virtual memory">Virtual memory</a></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Page_fault" title="Page fault">Page fault</a></div>

<p>The use of virtual memory addressing (such as paging or segmentation) means that the kernel can choose what memory each program may use at any given time, allowing the operating system to use the same memory locations for multiple tasks.
</p><p>If a program tries to access memory that is not accessible<sup id="cite_ref-84" class="reference"><a href="#cite_note-84"><span class="cite-bracket">[</span>e<span class="cite-bracket">]</span></a></sup> memory, but nonetheless has been allocated to it, the kernel is interrupted <style data-mw-deduplicate="TemplateStyles:r1033199720">
/* start https://en.wikipedia.org/ */


.mw-parser-output div.crossreference{padding-left:0}


/* end https://en.wikipedia.org/ */
</style><span role="note" class="hatnote navigation-not-searchable crossreference selfref">(see <a href="#Memory_management">§&nbsp;Memory management</a>)</span>. This kind of interrupt is typically a <a href="Page_fault" title="Page fault">page fault</a>.
</p><p>When the kernel detects a page fault it generally adjusts the virtual memory range of the program which triggered it, granting it access to the memory requested. This gives the kernel discretionary power over where a particular application's memory is stored, or even whether or not it has been allocated yet.
</p><p>In modern operating systems, memory which is accessed less frequently can be temporarily stored on a disk or other media to make that space available for use by other programs. This is called <a href="Paging" class="mw-redirect" title="Paging">swapping</a>, as an area of memory can be used by multiple programs, and what that memory area contains can be swapped or exchanged on demand.
</p><p>Virtual memory provides the programmer or the user with the perception that there is a much larger amount of RAM in the computer than is really there.<sup id="cite_ref-Operating_System_85-0" class="reference"><a href="#cite_note-Operating_System-85"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Concurrency">Concurrency</h3></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Computer_multitasking" title="Computer multitasking">Computer multitasking</a> and <a href="Process_management_(computing)" title="Process management (computing)">Process management (computing)</a></div>
<p><a href="Concurrency_(computer_science)" title="Concurrency (computer science)">Concurrency</a> refers to the operating system's ability to carry out multiple tasks simultaneously.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014129_86-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014129-86"><span class="cite-bracket">[</span>81<span class="cite-bracket">]</span></a></sup> Virtually all modern operating systems support concurrency.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018159_87-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018159-87"><span class="cite-bracket">[</span>82<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Thread_(computing)" title="Thread (computing)">Threads</a> enable splitting a process' work into multiple parts that can run simultaneously.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014130_88-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014130-88"><span class="cite-bracket">[</span>83<span class="cite-bracket">]</span></a></sup> The number of threads is not limited by the number of processors available. If there are more threads than processors, the operating system <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a> schedules, suspends, and resumes threads, controlling when each thread runs and how much CPU time it receives.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014131_89-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014131-89"><span class="cite-bracket">[</span>84<span class="cite-bracket">]</span></a></sup> During a <a href="Context_switch" title="Context switch">context switch</a> a running thread is suspended, its state is saved into the <a href="Thread_control_block" title="Thread control block">thread control block</a> and stack, and the state of the new thread is loaded in.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014157,_159_90-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014157,_159-90"><span class="cite-bracket">[</span>85<span class="cite-bracket">]</span></a></sup> Historically, on many systems a thread could run until it relinquished control (<a href="Cooperative_multitasking" title="Cooperative multitasking">cooperative multitasking</a>). Because this model can allow a single thread to monopolize the processor, most operating systems now can <a href="Interrupt" title="Interrupt">interrupt</a> a thread (<a href="Preemptive_multitasking" class="mw-redirect" title="Preemptive multitasking">preemptive multitasking</a>).<sup id="cite_ref-FOOTNOTEAndersonDahlin2014139_91-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014139-91"><span class="cite-bracket">[</span>86<span class="cite-bracket">]</span></a></sup>
</p><p>Threads have their own thread ID, <a href="Program_counter" title="Program counter">program counter</a> (PC), a <a href="Processor_register" title="Processor register">register</a> set, and a <a href="Stack-based_memory_allocation" title="Stack-based memory allocation">stack</a>, but share code, <a href="Heap_memory" class="mw-redirect" title="Heap memory">heap</a> data, and other resources with other threads of the same process.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018160_92-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018160-92"><span class="cite-bracket">[</span>87<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEAndersonDahlin2014183_93-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014183-93"><span class="cite-bracket">[</span>88<span class="cite-bracket">]</span></a></sup> Thus, there is less overhead to create a thread than a new process.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018162_94-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018162-94"><span class="cite-bracket">[</span>89<span class="cite-bracket">]</span></a></sup> On single-CPU systems, concurrency is switching between processes. Many computers have multiple CPUs.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018162–163_95-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018162–163-95"><span class="cite-bracket">[</span>90<span class="cite-bracket">]</span></a></sup> <a href="Parallel_computing" title="Parallel computing">Parallelism</a> with multiple threads running on different CPUs can speed up a program, depending on how much of it can be executed concurrently.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018164_96-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018164-96"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="File_system">File system</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="File_system" title="File system">File system</a></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Virtual_file_system" title="Virtual file system">Virtual file system</a></div>

<p>Permanent storage devices used in twenty-first century computers, unlike <a href="Volatile_memory" title="Volatile memory">volatile</a> <a href="Dynamic_random-access_memory" title="Dynamic random-access memory">dynamic random-access memory</a> (DRAM), are still accessible after a <a href="Crash_(computing)" title="Crash (computing)">crash</a> or <a href="Power_failure" class="mw-redirect" title="Power failure">power failure</a>. Permanent (<a href="Non-volatile_memory" title="Non-volatile memory">non-volatile</a>) storage is much cheaper per byte, but takes several orders of magnitude longer to access, read, and write.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014492,_517_97-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014492,_517-97"><span class="cite-bracket">[</span>92<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTETanenbaumBos2023259–260_98-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023259–260-98"><span class="cite-bracket">[</span>93<span class="cite-bracket">]</span></a></sup> The two main technologies are a <a href="Hard_drive" class="mw-redirect" title="Hard drive">hard drive</a> consisting of <a href="Magnetic_disk" class="mw-redirect" title="Magnetic disk">magnetic disks</a>, and <a href="Flash_memory" title="Flash memory">flash memory</a> (a <a href="Solid-state_drive" title="Solid-state drive">solid-state drive</a> that stores data in electrical circuits). The latter is more expensive but faster and more durable.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014517,_530_99-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014517,_530-99"><span class="cite-bracket">[</span>94<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTETanenbaumBos2023260_100-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023260-100"><span class="cite-bracket">[</span>95<span class="cite-bracket">]</span></a></sup>
</p><p><a href="File_system" title="File system">File systems</a> are an <a href="Abstraction" title="Abstraction">abstraction</a> used by the operating system to simplify access to permanent storage. They provide human-readable <a href="Filenames" class="mw-redirect" title="Filenames">filenames</a> and other <a href="Metadata" title="Metadata">metadata</a>, increase performance via <a href="Amortization_(computer_science)" class="mw-redirect" title="Amortization (computer science)">amortization</a> of accesses, prevent multiple threads from accessing the same section of memory, and include <a href="Checksums" class="mw-redirect" title="Checksums">checksums</a> to identify <a href="Data_corruption" title="Data corruption">corruption</a>.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014492–493_101-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014492–493-101"><span class="cite-bracket">[</span>96<span class="cite-bracket">]</span></a></sup> File systems are composed of files (named collections of data, of an arbitrary size) and <a href="Directory_(computing)" title="Directory (computing)">directories</a> (also called folders) that list human-readable filenames and other directories.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014496_102-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014496-102"><span class="cite-bracket">[</span>97<span class="cite-bracket">]</span></a></sup> An absolute <a href="File_path" class="mw-redirect" title="File path">file path</a> begins at the <a href="Root_directory" title="Root directory">root directory</a> and lists <a href="Subdirectories" class="mw-redirect" title="Subdirectories">subdirectories</a> divided by punctuation, while a relative path defines the location of a file from a directory.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014496–497_103-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014496–497-103"><span class="cite-bracket">[</span>98<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTETanenbaumBos2023274–275_104-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023274–275-104"><span class="cite-bracket">[</span>99<span class="cite-bracket">]</span></a></sup>
</p><p><a href="System_call" title="System call">System calls</a> (which are sometimes <a href="Wrapper_function" title="Wrapper function">wrapped</a> by libraries) enable applications to create, delete, open, and close files, as well as link, read, and write to them. All these operations are carried out by the operating system on behalf of the application.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014502–504_105-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014502–504-105"><span class="cite-bracket">[</span>100<span class="cite-bracket">]</span></a></sup> The operating system's efforts to reduce latency include storing recently requested blocks of memory in a <a href="Cache_(computing)" title="Cache (computing)">cache</a> and <a href="Prefetching" title="Prefetching">prefetching</a> data that the application has not asked for, but might need next.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014507_106-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014507-106"><span class="cite-bracket">[</span>101<span class="cite-bracket">]</span></a></sup> <a href="Device_driver" title="Device driver">Device drivers</a> are software specific to each <a href="Input/output" title="Input/output">input/output</a> (I/O) device that enables the operating system to work without modification over different hardware.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014508_107-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014508-107"><span class="cite-bracket">[</span>102<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTETanenbaumBos2023359_108-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023359-108"><span class="cite-bracket">[</span>103<span class="cite-bracket">]</span></a></sup>
</p><p>Another component of file systems is a <a href="Associative_array" title="Associative array">dictionary</a> that maps a file's name and metadata to the <a href="Data_block" class="mw-redirect" title="Data block">data block</a> where its contents are stored.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014545_109-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014545-109"><span class="cite-bracket">[</span>104<span class="cite-bracket">]</span></a></sup> Most file systems use directories to convert file names to file numbers. To find the block number, the operating system uses an <a href="Database_index" title="Database index">index</a> (often implemented as a <a href="Tree_(data_structure)" class="mw-redirect" title="Tree (data structure)">tree</a>).<sup id="cite_ref-FOOTNOTEAndersonDahlin2014546_110-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014546-110"><span class="cite-bracket">[</span>105<span class="cite-bracket">]</span></a></sup> Separately, there is a free space <a href="Map_(data_structure)" class="mw-redirect" title="Map (data structure)">map</a> to track free blocks, commonly implemented as a <a href="Bitmap" title="Bitmap">bitmap</a>.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014546_110-1" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014546-110"><span class="cite-bracket">[</span>105<span class="cite-bracket">]</span></a></sup> Although any free block can be used to store a new file, many operating systems try to group together files in the same directory to maximize performance, or periodically reorganize files to reduce <a href="File_system_fragmentation" title="File system fragmentation">fragmentation</a>.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014547_111-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014547-111"><span class="cite-bracket">[</span>106<span class="cite-bracket">]</span></a></sup>
</p><p>Maintaining data reliability in the face of a computer crash or hardware failure is another concern.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014589,_591_112-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014589,_591-112"><span class="cite-bracket">[</span>107<span class="cite-bracket">]</span></a></sup> File writing protocols are designed with atomic operations so as not to leave permanent storage in a partially written, inconsistent state in the event of a crash at any point during writing.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014591–592_113-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014591–592-113"><span class="cite-bracket">[</span>108<span class="cite-bracket">]</span></a></sup> Data corruption is addressed by redundant storage (for example, RAID—<a href="Redundant_array_of_inexpensive_disks" class="mw-redirect" title="Redundant array of inexpensive disks">redundant array of inexpensive disks</a>)<sup id="cite_ref-FOOTNOTETanenbaumBos2023385–386_114-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023385–386-114"><span class="cite-bracket">[</span>109<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEAndersonDahlin2014592_115-0" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014592-115"><span class="cite-bracket">[</span>110<span class="cite-bracket">]</span></a></sup> and <a href="Checksums" class="mw-redirect" title="Checksums">checksums</a> to detect when data has been corrupted. With multiple layers of checksums and backups of a file, a system can recover from multiple hardware failures. Background processes are often used to detect and recover from data corruption.<sup id="cite_ref-FOOTNOTEAndersonDahlin2014592_115-1" class="reference"><a href="#cite_note-FOOTNOTEAndersonDahlin2014592-115"><span class="cite-bracket">[</span>110<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Security">Security</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Computer_security" title="Computer security">Computer security</a></div>
<p>Security means protecting users from other users of the same computer, as well as from those who seeking remote access to it over a network.<sup id="cite_ref-FOOTNOTETanenbaumBos2023605–606_116-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023605–606-116"><span class="cite-bracket">[</span>111<span class="cite-bracket">]</span></a></sup> Operating systems security rests on achieving the <a href="CIA_triad" class="mw-redirect" title="CIA triad">CIA triad</a>: confidentiality (unauthorized users cannot access data), integrity (unauthorized users cannot modify data), and availability (ensuring that the system remains available to authorized users, even in the event of a <a href="Denial_of_service_attack" class="mw-redirect" title="Denial of service attack">denial of service attack</a>).<sup id="cite_ref-FOOTNOTETanenbaumBos2023608_117-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023608-117"><span class="cite-bracket">[</span>112<span class="cite-bracket">]</span></a></sup> As with other computer systems, isolating <a href="Security_domain" title="Security domain">security domains</a>—in the case of operating systems, the kernel, processes, and <a href="Virtual_machine" title="Virtual machine">virtual machines</a>—is key to achieving security.<sup id="cite_ref-FOOTNOTETanenbaumBos2023609_118-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023609-118"><span class="cite-bracket">[</span>113<span class="cite-bracket">]</span></a></sup> Other ways to increase security include simplicity to minimize the <a href="Attack_surface" title="Attack surface">attack surface</a>, locking access to resources by default, checking all requests for authorization, <a href="Principle_of_least_authority" class="mw-redirect" title="Principle of least authority">principle of least authority</a> (granting the minimum privilege essential for performing a task), <a href="Privilege_separation" title="Privilege separation">privilege separation</a>, and reducing shared data.<sup id="cite_ref-FOOTNOTETanenbaumBos2023609–610_119-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023609–610-119"><span class="cite-bracket">[</span>114<span class="cite-bracket">]</span></a></sup>
</p><p>Some operating system designs are more secure than others. Those with no isolation between the kernel and applications are least secure, while those with a <a href="Monolithic_kernel" title="Monolithic kernel">monolithic kernel</a> like most general-purpose operating systems are still vulnerable if any part of the kernel is compromised. A more secure design features <a href="Microkernel" title="Microkernel">microkernels</a> that separate the kernel's privileges into many separate security domains and reduce the consequences of a single kernel breach.<sup id="cite_ref-FOOTNOTETanenbaumBos2023612_120-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023612-120"><span class="cite-bracket">[</span>115<span class="cite-bracket">]</span></a></sup> <a href="Unikernel" title="Unikernel">Unikernels</a> are another approach that improves security by minimizing the kernel and separating out other operating systems functionality by application.<sup id="cite_ref-FOOTNOTETanenbaumBos2023612_120-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023612-120"><span class="cite-bracket">[</span>115<span class="cite-bracket">]</span></a></sup>
</p><p>Most operating systems are written in <a href="C_(programming_language)" title="C (programming language)">C</a> or <a href="C%2B%2B" title="C++">C++</a>, which create potential vulnerabilities for exploitation. Despite attempts to protect against them, vulnerabilities are caused by <a href="Buffer_overflow" title="Buffer overflow">buffer overflow</a> attacks, which are enabled by the lack of <a href="Bounds_checking" title="Bounds checking">bounds checking</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos2023648,_657_121-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023648,_657-121"><span class="cite-bracket">[</span>116<span class="cite-bracket">]</span></a></sup> Hardware vulnerabilities, some of them <a href="Speculative_execution_CPU_vulnerabilities" class="mw-redirect" title="Speculative execution CPU vulnerabilities">caused by CPU optimizations</a>, can also be used to compromise the operating system.<sup id="cite_ref-FOOTNOTETanenbaumBos2023668–669,_674_122-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023668–669,_674-122"><span class="cite-bracket">[</span>117<span class="cite-bracket">]</span></a></sup> There are known instances of operating system programmers deliberately implanting vulnerabilities, such as <a href="Backdoor_(computing)" title="Backdoor (computing)">back doors</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos2023679–680_123-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023679–680-123"><span class="cite-bracket">[</span>118<span class="cite-bracket">]</span></a></sup>
</p><p>Operating systems security is hampered by their increasing complexity and the resulting inevitability of bugs.<sup id="cite_ref-FOOTNOTETanenbaumBos2023605,_617–618_124-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023605,_617–618-124"><span class="cite-bracket">[</span>119<span class="cite-bracket">]</span></a></sup> Because <a href="Formal_verification" title="Formal verification">formal verification</a> of operating systems may not be feasible, developers use operating system <a href="Hardening_(computing)" title="Hardening (computing)">hardening</a> to reduce vulnerabilities,<sup id="cite_ref-FOOTNOTETanenbaumBos2023681–682_125-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023681–682-125"><span class="cite-bracket">[</span>120<span class="cite-bracket">]</span></a></sup> e.g. <a href="Address_space_layout_randomization" title="Address space layout randomization">address space layout randomization</a>, <a href="Control-flow_integrity" title="Control-flow integrity">control-flow integrity</a>,<sup id="cite_ref-FOOTNOTETanenbaumBos2023683_126-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023683-126"><span class="cite-bracket">[</span>121<span class="cite-bracket">]</span></a></sup> <a href="Access-control_list" title="Access-control list">access restrictions</a>,<sup id="cite_ref-FOOTNOTETanenbaumBos2023685_127-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023685-127"><span class="cite-bracket">[</span>122<span class="cite-bracket">]</span></a></sup> and other techniques.<sup id="cite_ref-FOOTNOTETanenbaumBos2023689_128-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023689-128"><span class="cite-bracket">[</span>123<span class="cite-bracket">]</span></a></sup> There are no restrictions on who can contribute code to open source operating systems; such operating systems have transparent change histories and distributed governance structures.<sup id="cite_ref-FOOTNOTERichetBouaynaya202392_129-0" class="reference"><a href="#cite_note-FOOTNOTERichetBouaynaya202392-129"><span class="cite-bracket">[</span>124<span class="cite-bracket">]</span></a></sup> Open source developers strive to work collaboratively to find and eliminate security vulnerabilities, using <a href="Code_review" title="Code review">code review</a> and <a href="Type_checking" class="mw-redirect" title="Type checking">type checking</a> to expunge malicious code.<sup id="cite_ref-FOOTNOTERichetBouaynaya202392–93_130-0" class="reference"><a href="#cite_note-FOOTNOTERichetBouaynaya202392–93-130"><span class="cite-bracket">[</span>125<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEBerntssoStrandénWarg2017130–131_131-0" class="reference"><a href="#cite_note-FOOTNOTEBerntssoStrandénWarg2017130–131-131"><span class="cite-bracket">[</span>126<span class="cite-bracket">]</span></a></sup> <a href="Andrew_S._Tanenbaum" title="Andrew S. Tanenbaum">Andrew S. Tanenbaum</a> advises releasing the <a href="Source_code" title="Source code">source code</a> of all operating systems, arguing that it prevents developers from placing trust in secrecy and thus relying on the unreliable practice of <a href="Security_by_obscurity" class="mw-redirect" title="Security by obscurity">security by obscurity</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos2023611_132-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023611-132"><span class="cite-bracket">[</span>127<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="User_interface">User interface</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Shell_(computing)" title="Shell (computing)">Operating system user interface</a></div>
<p>A <a href="User_interface" title="User interface">user interface</a> (UI) is essential to support human interaction with a computer. The two most common user interface types for any computer are
</p>
<ul><li><a href="Command-line_interface" title="Command-line interface">command-line interface</a>, where computer commands are typed, line-by-line,</li>
<li><a href="Graphical_user_interface" title="Graphical user interface">graphical user interface</a> (GUI) using a visual environment, most commonly a combination of the window, icon, menu, and pointer elements, also known as <a href="WIMP_(computing)" title="WIMP (computing)">WIMP</a>.</li></ul>
<p>For personal computers, including <a href="Smartphone" title="Smartphone">smartphones</a> and <a href="Tablet_computer" title="Tablet computer">tablet computers</a>, and for <a href="Workstation" title="Workstation">workstations</a>, user input is typically from a combination of <a href="Keyboard_technology" title="Keyboard technology">keyboard</a>, <a href="Mouse_(computing)" class="mw-redirect" title="Mouse (computing)">mouse</a>, and <a href="Trackpad" class="mw-redirect" title="Trackpad">trackpad</a> or <a href="Touchscreen" title="Touchscreen">touchscreen</a>, all of which are connected to the operating system with specialized software.<sup id="cite_ref-FOOTNOTETanenbaumBos2023396,_402_133-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023396,_402-133"><span class="cite-bracket">[</span>128<span class="cite-bracket">]</span></a></sup> Personal computer users who are not software developers or coders often prefer GUIs for both input and output; GUIs are supported by most personal computers.<sup id="cite_ref-FOOTNOTETanenbaumBos2023395,_408_134-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023395,_408-134"><span class="cite-bracket">[</span>129<span class="cite-bracket">]</span></a></sup> The software to support GUIs is more complex than a command line for input and plain text output. Plain text output is often preferred by programmers, and is easy to support.<sup id="cite_ref-FOOTNOTETanenbaumBos2023402_135-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023402-135"><span class="cite-bracket">[</span>130<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Operating_system_development_as_a_hobby">Operating system development as a hobby</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Hobbyist_operating_system" title="Hobbyist operating system">Hobbyist operating system</a></div>
<p>A hobby operating system may be classified as one whose code has not been directly derived from an existing operating system, and has few users and active developers.<sup id="cite_ref-136" class="reference"><a href="#cite_note-136"><span class="cite-bracket">[</span>131<span class="cite-bracket">]</span></a></sup>
</p><p>In some cases, hobby development is in support of a "<a href="Homebrew_Computer_Club" title="Homebrew Computer Club">homebrew</a>" computing device, for example, a simple <a href="Single-board_computer" title="Single-board computer">single-board computer</a> powered by a <a href="MOS_Technology_6502" title="MOS Technology 6502">6502 microprocessor</a>. Or, development may be for an architecture already in widespread use. Operating system development may come from entirely new concepts, or may commence by modeling an existing operating system. In either case, the hobbyist is her/his own developer, or may interact with a small and sometimes unstructured group of individuals who have like interests.
</p><p>Examples of hobby operating systems include <a href="Syllable_Desktop" title="Syllable Desktop">Syllable</a> and <a href="TempleOS" title="TempleOS">TempleOS</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Diversity_of_operating_systems_and_portability">Diversity of operating systems and portability</h2></div>
<p>If an application is written for use on a specific operating system, and is <a href="Ported" class="mw-redirect" title="Ported">ported</a> to another OS, the functionality required by that application may be implemented differently by that OS (the names of functions, meaning of arguments, etc.) requiring the application to be adapted, changed, or otherwise <a href="Software_maintenance" title="Software maintenance">maintained</a>.
</p><p>This cost in supporting operating systems diversity can be avoided by instead writing applications for <a href="Software_platform" class="mw-redirect" title="Software platform">software platforms</a> such as <a href="Java_(software_platform)" title="Java (software platform)">Java</a> or <a href="Qt_(software)" title="Qt (software)">Qt</a>. These abstractions have already borne the cost of adaptation to specific operating systems and their <a href="System_library" class="mw-redirect" title="System library">system libraries</a>.
</p><p>Another approach is for operating system vendors to adopt standards. For example, <a href="POSIX" title="POSIX">POSIX</a> and <a href="Operating_system_abstraction_layer" title="Operating system abstraction layer">OS abstraction layers</a> provide commonalities that reduce porting costs.
</p>
<div class="mw-heading mw-heading2"><h2 id="Popular_operating_systems">Popular operating systems</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Usage_share_of_operating_systems" title="Usage share of operating systems">Usage share of operating systems</a> and <a href="Comparison_of_operating_systems" title="Comparison of operating systems">Comparison of operating systems</a></div>
<p>As of September&nbsp;2024, <a href="Android_(operating_system)" title="Android (operating system)">Android</a> (based on the Linux kernel) is the most popular operating system with a 46% market share, followed by <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> at 26%, <a href="IOS" title="IOS">iOS</a> and <a href="IPadOS" title="IPadOS">iPadOS</a> at 18%, <a href="MacOS" title="MacOS">macOS</a> at 5%, and <a href="Linux" title="Linux">Linux</a> at 1%. Android, iOS, and iPadOS are <a href="Mobile_operating_system" title="Mobile operating system">mobile operating systems</a>, while Windows, macOS, and Linux are desktop operating systems.<sup id="cite_ref-gs.statcounter.com_3-1" class="reference"><a href="#cite_note-gs.statcounter.com-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Linux">Linux</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Linux" title="Linux">Linux</a></div>

<p><a href="Linux" title="Linux">Linux</a> is a <a href="Free_software" title="Free software">free software</a> distributed under the <a href="GNU_General_Public_License" title="GNU General Public License">GNU General Public License</a> (GPL), which means that all of its derivatives are legally required to release their <a href="Source_code" title="Source code">source code</a>.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018779–780_137-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018779–780-137"><span class="cite-bracket">[</span>132<span class="cite-bracket">]</span></a></sup> Linux was designed by programmers for their own use, thus emphasizing simplicity and consistency, with a small number of basic elements that can be combined in nearly unlimited ways, and avoiding redundancy.<sup id="cite_ref-FOOTNOTETanenbaumBos2023713–714_138-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023713–714-138"><span class="cite-bracket">[</span>133<span class="cite-bracket">]</span></a></sup>
</p><p>Its design is similar to other UNIX systems not using a <a href="Microkernel" title="Microkernel">microkernel</a>.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018780_139-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018780-139"><span class="cite-bracket">[</span>134<span class="cite-bracket">]</span></a></sup> It is written in <a href="C_(programming_language)" title="C (programming language)">C</a><sup id="cite_ref-140" class="reference"><a href="#cite_note-140"><span class="cite-bracket">[</span>135<span class="cite-bracket">]</span></a></sup> and uses <a href="UNIX_System_V" title="UNIX System V">UNIX System V</a> syntax, but also supports <a href="BSD" class="mw-redirect" title="BSD">BSD</a> syntax. Linux supports standard UNIX networking features, as well as the full suite of UNIX tools, while <a href="Multiuser" class="mw-redirect" title="Multiuser">supporting multiple users</a> and employing <a href="Preemptive_multitasking" class="mw-redirect" title="Preemptive multitasking">preemptive multitasking</a>. Initially of a minimalist design, Linux is a flexible system that can work in under 16 <a href="Megabytes" class="mw-redirect" title="Megabytes">MB</a> of <a href="RAM" class="mw-redirect" title="RAM">RAM</a>, but still is used on large <a href="Multiprocessor" class="mw-redirect" title="Multiprocessor">multiprocessor</a> systems.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018780_139-1" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018780-139"><span class="cite-bracket">[</span>134<span class="cite-bracket">]</span></a></sup> Similar to other UNIX systems, Linux <a href="Linux_distribution" title="Linux distribution">distributions</a> are composed of a <a href="Linux_kernel" title="Linux kernel">kernel</a>, <a href="System_library" class="mw-redirect" title="System library">system libraries</a>, and <a href="System_utilities" class="mw-redirect" title="System utilities">system utilities</a>.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018781_141-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018781-141"><span class="cite-bracket">[</span>136<span class="cite-bracket">]</span></a></sup> Linux has a <a href="Graphical_user_interface" title="Graphical user interface">graphical user interface</a> (GUI) with a desktop, folder and file icons, as well as the option to access the operating system via a <a href="Command_line" class="mw-redirect" title="Command line">command line</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos2023715–716_142-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023715–716-142"><span class="cite-bracket">[</span>137<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Android_(operating_system)" title="Android (operating system)">Android</a> is a partially open-source operating system closely based on Linux and has become the most widely used operating system by users, due to its popularity on <a href="Smartphones" class="mw-redirect" title="Smartphones">smartphones</a> and, to a lesser extent, <a href="Embedded_system" title="Embedded system">embedded systems</a> needing a GUI, such as "<a href="Smart_watch" class="mw-redirect" title="Smart watch">smart watches</a>, <a href="Android_Automotive" title="Android Automotive">automotive dashboards</a>, airplane seatbacks, <a href="Medical_devices" class="mw-redirect" title="Medical devices">medical devices</a>, and <a href="Home_appliance" title="Home appliance">home appliances</a>".<sup id="cite_ref-FOOTNOTETanenbaumBos2023793–794_143-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023793–794-143"><span class="cite-bracket">[</span>138<span class="cite-bracket">]</span></a></sup> Unlike Linux, much of Android is written in <a href="Java_(programming_language)" title="Java (programming language)">Java</a> and uses <a href="Object-oriented_design" class="mw-redirect" title="Object-oriented design">object-oriented design</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos2023793_144-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023793-144"><span class="cite-bracket">[</span>139<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Microsoft_Windows">Microsoft Windows</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a></div>

<p>Windows is a <a href="Proprietary" title="Proprietary">proprietary</a> operating system that is widely used on desktop computers, laptops, tablets, phones, <a href="Workstation" title="Workstation">workstations</a>, <a href="Enterprise_server" class="mw-redirect" title="Enterprise server">enterprise servers</a>, and <a href="Xbox" title="Xbox">Xbox</a> consoles.<sup id="cite_ref-FOOTNOTETanenbaumBos2023871_146-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos2023871-146"><span class="cite-bracket">[</span>141<span class="cite-bracket">]</span></a></sup> The operating system was designed for "security, reliability, compatibility, high performance, extensibility, portability, and international support"—later on, energy efficiency and support for dynamic devices also became priorities.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018826_147-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018826-147"><span class="cite-bracket">[</span>142<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Windows_Executive" class="mw-redirect" title="Windows Executive">Windows Executive</a> works via <a href="Object_Manager_(Windows)" class="mw-redirect" title="Object Manager (Windows)">kernel-mode objects</a> for important data structures like processes, threads, and sections (memory objects, for example files).<sup id="cite_ref-FOOTNOTETanenbaumBos20231035_148-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20231035-148"><span class="cite-bracket">[</span>143<span class="cite-bracket">]</span></a></sup> The operating system supports <a href="Demand_paging" title="Demand paging">demand paging</a> of <a href="Virtual_memory" title="Virtual memory">virtual memory</a>, which speeds up I/O for many applications. I/O <a href="Device_drivers" class="mw-redirect" title="Device drivers">device drivers</a> use the <a href="Windows_Driver_Model" title="Windows Driver Model">Windows Driver Model</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos20231035_148-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20231035-148"><span class="cite-bracket">[</span>143<span class="cite-bracket">]</span></a></sup> The <a href="NTFS" title="NTFS">NTFS</a> file system has a master table and each file is represented as a <a href="Record_(computer_science)" title="Record (computer science)">record</a> with <a href="Metadata" title="Metadata">metadata</a>.<sup id="cite_ref-FOOTNOTETanenbaumBos20231036_149-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20231036-149"><span class="cite-bracket">[</span>144<span class="cite-bracket">]</span></a></sup> The scheduling includes <a href="Preemptive_multitasking" class="mw-redirect" title="Preemptive multitasking">preemptive multitasking</a>.<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018821_150-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018821-150"><span class="cite-bracket">[</span>145<span class="cite-bracket">]</span></a></sup> Windows has many security features;<sup id="cite_ref-FOOTNOTESilberschatz_et_al.2018827_151-0" class="reference"><a href="#cite_note-FOOTNOTESilberschatz_et_al.2018827-151"><span class="cite-bracket">[</span>146<span class="cite-bracket">]</span></a></sup> especially important are the use of <a href="Access-control_list" title="Access-control list">access-control lists</a> and <a href="Safety_integrity_level" title="Safety integrity level">integrity levels</a>. Every process has an authentication token and each object is given a security descriptor. Later releases have added even more security features.<sup id="cite_ref-FOOTNOTETanenbaumBos20231036_149-1" class="reference"><a href="#cite_note-FOOTNOTETanenbaumBos20231036-149"><span class="cite-bracket">[</span>144<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */


.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}


/* end https://en.wikipedia.org/ */
</style><div class="div-col">
<ul><li><a href="Comparison_of_operating_systems" title="Comparison of operating systems">Comparison of operating systems</a></li>
<li><a href="DBOS" title="DBOS">DBOS</a></li>
<li><a href="Interruptible_operating_system" title="Interruptible operating system">Interruptible operating system</a></li>
<li><a href="List_of_operating_systems" title="List of operating systems">List of operating systems</a></li>
<li><a href="List_of_pioneers_in_computer_science" title="List of pioneers in computer science">List of pioneers in computer science</a></li>
<li><a href="Glossary_of_operating_systems_terms" title="Glossary of operating systems terms">Glossary of operating systems terms</a></li>
<li><a href="Microcontroller" title="Microcontroller">Microcontroller</a></li>
<li><a href="Network_operating_system" title="Network operating system">Network operating system</a></li>
<li><a href="Object-oriented_operating_system" title="Object-oriented operating system">Object-oriented operating system</a></li>
<li><a href="Lisp_machine" title="Lisp machine">Lisp machine</a></li>
<li><a href="Operating_System_Projects" title="Operating System Projects">Operating System Projects</a></li>
<li><a href="System_Commander" title="System Commander">System Commander</a></li>
<li><a href="System_image" title="System image">System image</a></li>
<li><a href="Timeline_of_operating_systems" title="Timeline of operating systems">Timeline of operating systems</a></li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-lower-alpha">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-57">^</a></b></span> <span class="reference-text">Modern CPUs provide instructions (e.g. SYSENTER) to invoke selected kernel services without an interrupts. Visit <a rel="nofollow" class="external free" href="https://wiki.osdev.org/SYSENTER">https://wiki.osdev.org/SYSENTER</a> for more information.</span>
</li>
<li id="cite_note-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span> <span class="reference-text">Examples include <a href="Signal_(IPC)#SIGINT" title="Signal (IPC)">SIGINT</a>, <a href="SIGSEGV" class="mw-redirect" title="SIGSEGV">SIGSEGV</a>, and <a href="SIGBUS" class="mw-redirect" title="SIGBUS">SIGBUS</a>.</span>
</li>
<li id="cite_note-74"><span class="mw-cite-backlink"><b><a href="#cite_ref-74">^</a></b></span> <span class="reference-text">often in the form of a DMA chip for smaller systems and I/O channels for larger systems</span>
</li>
<li id="cite_note-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-76">^</a></b></span> <span class="reference-text">Modern <a href="Motherboard" title="Motherboard">motherboards</a> have a DMA controller. Additionally, a device may also have one. Visit <a href="SCSI_RDMA_Protocol" title="SCSI RDMA Protocol">SCSI RDMA Protocol</a>.</span>
</li>
<li id="cite_note-84"><span class="mw-cite-backlink"><b><a href="#cite_ref-84">^</a></b></span> <span class="reference-text">There are several reasons that the memory might be inaccessible
<ul><li>The address might be out of range</li>
<li>The address might refer to a page or segment that has been moved to a backing store</li>
<li>The address might refer to memory that has restricted access due to, e.g., <a href="Memory_protection#Protection_keys" title="Memory protection">key</a>, <a href="Memory_protection#Protection_rings" title="Memory protection">ring</a>.</li></ul>
</span></li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFStallings2005" class="citation book cs1">Stallings (2005). <i>Operating Systems, Internals and Design Principles</i>. Pearson: Prentice Hall. p.&nbsp;6.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFDhotre2009" class="citation book cs1">Dhotre, I.A. (2009). <i>Operating Systems</i>. Technical Publications. p.&nbsp;1.</cite></span>
</li>
<li id="cite_note-gs.statcounter.com-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-gs.statcounter.com_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-gs.statcounter.com_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://gs.statcounter.com/os-market-share">"Operating System Market Share Worldwide"</a>. <i>StatCounter Global Stats</i><span class="reference-accessdate">. Retrieved <span class="nowrap">20 December</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-auto-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-auto_4-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.oreilly.com/library/view/operating-system-concepts/9780471694663/pt07.html">"VII. Special-Purpose Systems - Operating System Concepts, Seventh Edition [Book]"</a>. <i>www.oreilly.com</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210613190049/https://www.oreilly.com/library/view/operating-system-concepts/9780471694663/pt07.html">Archived</a> from the original on 13 June 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">8 February</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.acs.eonerc.rwth-aachen.de/cms/E-ON-ERC-ACS/Studium/Lehrveranstaltungen/~lrhs/Spezial-Betriebssysteme/?lidx=1">"Special-Purpose Operating Systems - RWTH AACHEN UNIVERSITY Institute for Automation of Complex Power Systems - English"</a>. <i>www.acs.eonerc.rwth-aachen.de</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210614034001/https://www.acs.eonerc.rwth-aachen.de/cms/E-ON-ERC-ACS/Studium/Lehrveranstaltungen/~lrhs/Spezial-Betriebssysteme/?lidx=1">Archived</a> from the original on 14 June 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">8 February</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20234-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos20234_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos20234_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;4.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin20146-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin20146_7-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;6.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.20186-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTESilberschatz_et_al.20186_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTESilberschatz_et_al.20186_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;6.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin20147-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEAndersonDahlin20147_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEAndersonDahlin20147_9-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-FOOTNOTEAndersonDahlin20147_9-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;7.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin20149–10-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin20149–10_10-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;9–10.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20236–7-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos20236–7_11-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;6–7.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin201410-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin201410_12-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;10.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20235-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos20235_13-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;5.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin201411-14"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEAndersonDahlin201411_14-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEAndersonDahlin201411_14-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-FOOTNOTEAndersonDahlin201411_14-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;11.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin20147,_9,_13-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin20147,_9,_13_15-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;7, 9, 13.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin201412–13-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin201412–13_16-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;12–13.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023557-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023557_17-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;557.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023558-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023558_18-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;558.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023565-19"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos2023565_19-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos2023565_19-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;565.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023562-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023562_20-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;562.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023563-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023563_21-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;563.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023569-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023569_22-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;569.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023571-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023571_23-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;571.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023579-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023579_24-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;579.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023581-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023581_25-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;581.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202337–38-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202337–38_26-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;37–38.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202339-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202339_27-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;39.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202338-28"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos202338_28-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos202338_28-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos202338_28-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos202338_28-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;38.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018701-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018701_29-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, pp.&nbsp;701.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018705-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018705_30-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, pp.&nbsp;705.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin201412-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin201412_31-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;12.</span>
</li>
<li id="cite_note-Unikernels-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-Unikernels_32-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFMadhavapeddyScott2013" class="citation magazine cs1">Madhavapeddy, Anil; Scott, David J (November 2013). <a rel="nofollow" class="external text" href="https://doi.org/10.1145/2557963.2566628">"Unikernels: Rise of the Virtual Library Operating System: What if all the software layers in a virtual appliance were compiled within the same safe, high-level language framework?"</a>. <i>Queue</i>. Vol.&nbsp;11, no.&nbsp;11. New York, NY, USA: ACM. pp.&nbsp;<span class="nowrap">30–</span>44. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F2557963.2566628">10.1145/2557963.2566628</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1542-7730">1542-7730</a><span class="reference-accessdate">. Retrieved <span class="nowrap">7 August</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-Unikraft-Build-Process-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-Unikraft-Build-Process_33-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://unikraft.org/docs/concepts/build-process">"Build Process - Unikraft"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240422183734/https://unikraft.org/docs/concepts/build-process">Archived</a> from the original on 22 April 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">8 August</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-rise-of-libOS-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-rise-of-libOS_34-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.sigarch.org/leave-your-os-at-home-the-rise-of-library-operating-systems/">"Leave your OS at home: the rise of library operating systems"</a>. <a href="ACM_SIGARCH" title="ACM SIGARCH">ACM SIGARCH</a>. 14 September 2017. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240301072916/https://www.sigarch.org/leave-your-os-at-home-the-rise-of-library-operating-systems/">Archived</a> from the original on 1 March 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">7 August</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-FlexSC-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-FlexSC_35-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSoaresStumm2010" class="citation conference cs1">Soares, Livio Baldini; Stumm, Michael (4 October 2010). <a rel="nofollow" class="external text" href="https://www.usenix.org/conference/osdi10/flexsc-flexible-system-call-scheduling-exception-less-system-calls"><i>FlexSC: Flexible System Call Scheduling with Exception-Less System Calls</i></a>. <a rel="nofollow" class="external text" href="https://www.usenix.org/legacy/events/osdi10/">OSDI '10, 9th USENIX Symposium on Operating System Design and Implementation</a>. <a href="USENIX" title="USENIX">USENIX</a><span class="reference-accessdate">. Retrieved <span class="nowrap">9 August</span> 2024</span>. p.&nbsp;2: <q>Synchronous implementation of system calls negatively impacts the performance of system intensive workloads, both in terms of the <i>direct</i> costs of mode switching and, more interestingly, in terms of the <i>indirect</i> pollution of important processor structures which affects both user-mode and kernel-mode performance. A motivating example that quantifies the impact of system call pollution on application performance can be seen in Figure 1. It depicts the user-mode instructions per cycles (kernel cycles and instructions are ignored) of one of the SPEC CPU 2006 benchmarks (Xalan) immediately before and after a <code>pwrite</code> system call. There is a significant drop in instructions per cycle (IPC) due to the system call, and it takes up to 14,000 cycles of execution before the IPC of this application returns to its previous level. As we will show, this performance degradation is mainly due to interference caused by the kernel on key processor structures.</q></cite></span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20238-36"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos20238_36-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos20238_36-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;8.</span>
</li>
<li id="cite_note-OSTEP_book-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-OSTEP_book_37-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFArpaci-DusseauArpaci-Dusseau2015" class="citation book cs1">Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea (2015). <a rel="nofollow" class="external text" href="http://pages.cs.wisc.edu/~remzi/OSTEP/"><i>Operating Systems: Three Easy Pieces</i></a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160725012948/http://pages.cs.wisc.edu/~remzi/OSTEP/">Archived</a> from the original on 25 July 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">25 July</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202310-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202310_38-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;10.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202311–12-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202311–12_39-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;11–12.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202313–14-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202313–14_40-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;13–14.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202314–15-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202314–15_41-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;14–15.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202315-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202315_42-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;15.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202315–16-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202315–16_43-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;15–16.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202316-44"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos202316_44-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos202316_44-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;16.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202317-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202317_45-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;17.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202318-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202318_46-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;18.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos202319–20-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos202319–20_47-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;19–20.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin201439–40-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin201439–40_48-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;39–40.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20232-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos20232_49-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;2.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin201441,_45-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin201441,_45_50-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;41, 45.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin201452–53-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin201452–53_51-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;52–53.</span>
</li>
<li id="cite_note-lpi-ch20-p388_quote1-52"><span class="mw-cite-backlink">^ <a href="#cite_ref-lpi-ch20-p388_quote1_52-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lpi-ch20-p388_quote1_52-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFKerrisk2010" class="citation book cs1">Kerrisk, Michael (2010). <i>The Linux Programming Interface</i>. No Starch Press. p.&nbsp;388. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-59327-220-3</bdi>. <q>A signal is a notification to a process that an event has occurred. Signals are sometimes described as software interrupts.</q></cite></span>
</li>
<li id="cite_note-Hyde_1996-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hyde_1996_53-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHyde1996" class="citation book cs1">Hyde, Randall (1996). <a rel="nofollow" class="external text" href="https://www.plantation-productions.com/Webster/www.artofasm.com/DOS/ch17/CH17-1.html#HEADING1-0">"Chapter Seventeen: Interrupts, Traps and Exceptions (Part 1)"</a>. <i>The Art Of Assembly Language Programming</i>. No Starch Press. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20211222205623/https://www.plantation-productions.com/Webster/www.artofasm.com/DOS/ch17/CH17-1.html#HEADING1-0">Archived</a> from the original on 22 December 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">22 December</span> 2021</span>. <q>The concept of an interrupt is something that has expanded in scope over the years. The 80x86 family has only added to the confusion surrounding interrupts by introducing the int (software interrupt) instruction. Indeed, different manufacturers have used terms like exceptions, faults, aborts, traps and interrupts to describe the phenomena this chapter discusses. Unfortunately there is no clear consensus as to the exact meaning of these terms. Different authors adopt different terms to their own use.</q></cite></span>
</li>
<li id="cite_note-sco-ch5-p308_a-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-ch5-p308_a_54-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFTanenbaum1990" class="citation book cs1">Tanenbaum, Andrew S. (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/308"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/308">308</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-854662-5</bdi>. <q>Like the trap, the interrupt stops the running program and transfers control to an interrupt handler, which performs some appropriate action. When finished, the interrupt handler returns control to the interrupted program.</q></cite></span>
</li>
<li id="cite_note-osc-ch2-p32_a-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-osc-ch2-p32_a_55-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSilberschatz1994" class="citation book cs1">Silberschatz, Abraham (1994). <i>Operating System Concepts, Fourth Edition</i>. Addison-Wesley. p.&nbsp;32. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-50480-4</bdi>. <q>When an interrupt (or trap) occurs, the hardware transfers control to the operating system. First, the operating system preserves the state of the CPU by storing registers and the program counter. Then, it determines which type of interrupt has occurred. For each type of interrupt, separate segments of code in the operating system determine what action should be taken.</q></cite></span>
</li>
<li id="cite_note-osc-ch4-p105-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-osc-ch4-p105_56-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSilberschatz1994" class="citation book cs1">Silberschatz, Abraham (1994). <i>Operating System Concepts, Fourth Edition</i>. Addison-Wesley. p.&nbsp;105. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-50480-4</bdi>. <q>Switching the CPU to another process requires saving the state of the old process and loading the saved state for the new process. This task is known as a context switch.</q></cite></span>
</li>
<li id="cite_note-osc-ch2-p31-58"><span class="mw-cite-backlink">^ <a href="#cite_ref-osc-ch2-p31_58-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-osc-ch2-p31_58-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-osc-ch2-p31_58-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-osc-ch2-p31_58-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-osc-ch2-p31_58-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSilberschatz1994" class="citation book cs1">Silberschatz, Abraham (1994). <i>Operating System Concepts, Fourth Edition</i>. Addison-Wesley. p.&nbsp;31. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-50480-4</bdi>.</cite></span>
</li>
<li id="cite_note-osc-ch2-p30-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-osc-ch2-p30_59-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSilberschatz1994" class="citation book cs1">Silberschatz, Abraham (1994). <i>Operating System Concepts, Fourth Edition</i>. Addison-Wesley. p.&nbsp;30. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-50480-4</bdi>. <q>Hardware may trigger an interrupt at any time by sending a signal to the CPU, usually by way of the system bus.</q></cite></span>
</li>
<li id="cite_note-lpi-ch20-p388_quote2-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-lpi-ch20-p388_quote2_60-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFKerrisk2010" class="citation book cs1">Kerrisk, Michael (2010). <i>The Linux Programming Interface</i>. No Starch Press. p.&nbsp;388. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-59327-220-3</bdi>. <q>Signals are analogous to hardware interrupts in that they interrupt the normal flow of execution of a program; in most cases, it is not possible to predict exactly when a signal will arrive.</q></cite></span>
</li>
<li id="cite_note-lpi-ch20-p388_quote3-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-lpi-ch20-p388_quote3_61-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFKerrisk2010" class="citation book cs1">Kerrisk, Michael (2010). <i>The Linux Programming Interface</i>. No Starch Press. p.&nbsp;388. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-59327-220-3</bdi>. <q>Among the types of events that cause the kernel to generate a signal for a process are the following: A software event occurred. For example, ... the process's CPU time limit was exceeded[.]</q></cite></span>
</li>
<li id="cite_note-lpi-ch20-p388-62"><span class="mw-cite-backlink">^ <a href="#cite_ref-lpi-ch20-p388_62-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lpi-ch20-p388_62-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-lpi-ch20-p388_62-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-lpi-ch20-p388_62-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-lpi-ch20-p388_62-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFKerrisk2010" class="citation book cs1">Kerrisk, Michael (2010). <i>The Linux Programming Interface</i>. No Starch Press. p.&nbsp;388. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-59327-220-3</bdi>.</cite></span>
</li>
<li id="cite_note-intel-developer-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-intel-developer_63-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf">"Intel® 64 and IA-32 Architectures Software Developer's Manual"</a> <span class="cs1-format">(PDF)</span>. <a href="Intel_Corporation" class="mw-redirect" title="Intel Corporation">Intel Corporation</a>. September 2016. p.&nbsp;610. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220323231921/https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 23 March 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">5 May</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-duos-p200-64"><span class="mw-cite-backlink">^ <a href="#cite_ref-duos-p200_64-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-duos-p200_64-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-duos-p200_64-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBach1986" class="citation book cs1">Bach, Maurice J. (1986). <i>The Design of the UNIX Operating System</i>. Prentice-Hall. p.&nbsp;200. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-13-201799-7</bdi>.</cite></span>
</li>
<li id="cite_note-lpi-ch20-p400-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-lpi-ch20-p400_66-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFKerrisk2010" class="citation book cs1">Kerrisk, Michael (2010). <i>The Linux Programming Interface</i>. No Starch Press. p.&nbsp;400. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-59327-220-3</bdi>.</cite></span>
</li>
<li id="cite_note-sco-ch5-p308_b-67"><span class="mw-cite-backlink">^ <a href="#cite_ref-sco-ch5-p308_b_67-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sco-ch5-p308_b_67-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFTanenbaum1990" class="citation book cs1">Tanenbaum, Andrew S. (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/308"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/308">308</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-854662-5</bdi>.</cite></span>
</li>
<li id="cite_note-osc-p182-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-osc-p182_68-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSilberschatz1994" class="citation book cs1">Silberschatz, Abraham (1994). <i>Operating System Concepts, Fourth Edition</i>. Addison-Wesley. p.&nbsp;182. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-50480-4</bdi>.</cite></span>
</li>
<li id="cite_note-usp-ch6-p153-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-usp-ch6-p153_69-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHavilandSalama1987" class="citation book cs1">Haviland, Keith; Salama, Ben (1987). <i>UNIX System Programming</i>. Addison-Wesley Publishing Company. p.&nbsp;153. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-201-12919-1</bdi>.</cite></span>
</li>
<li id="cite_note-usp-ch6-p148-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-usp-ch6-p148_70-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHavilandSalama1987" class="citation book cs1">Haviland, Keith; Salama, Ben (1987). <i>UNIX System Programming</i>. Addison-Wesley Publishing Company. p.&nbsp;148. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-201-12919-1</bdi>.</cite></span>
</li>
<li id="cite_note-usp-ch6-p149-71"><span class="mw-cite-backlink">^ <a href="#cite_ref-usp-ch6-p149_71-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-usp-ch6-p149_71-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFHavilandSalama1987" class="citation book cs1">Haviland, Keith; Salama, Ben (1987). <i>UNIX System Programming</i>. Addison-Wesley Publishing Company. p.&nbsp;149. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-201-12919-1</bdi>.</cite></span>
</li>
<li id="cite_note-sco-ch5-p292-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-ch5-p292_72-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFTanenbaum1990" class="citation book cs1">Tanenbaum, Andrew S. (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/292"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/292">292</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-854662-5</bdi>.</cite></span>
</li>
<li id="cite_note-A22-6821-7-storage-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-A22-6821-7-storage_73-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFIBM1968" class="citation book cs2">IBM (September 1968), <a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-7_360PrincOpsDec67.pdf#page=8">"Main Storage"</a> <span class="cs1-format">(PDF)</span>, <a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-7_360PrincOpsDec67.pdf"><i>IBM System/360 Principles of Operation</i></a> <span class="cs1-format">(PDF)</span>, Eighth Edition, p.&nbsp;7, <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220319083255/http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-7_360PrincOpsDec67.pdf">archived</a> <span class="cs1-format">(PDF)</span> from the original on 19 March 2022<span class="reference-accessdate">, retrieved <span class="nowrap">13 April</span> 2022</span></cite></span>
</li>
<li id="cite_note-sco-ch5-p294-75"><span class="mw-cite-backlink">^ <a href="#cite_ref-sco-ch5-p294_75-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sco-ch5-p294_75-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">
<cite id="CITEREFTanenbaum1990" class="citation book cs1">Tanenbaum, Andrew S. (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/294"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/294">294</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-854662-5</bdi>.</cite></span>
</li>
<li id="cite_note-77"><span class="mw-cite-backlink"><b><a href="#cite_ref-77">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/dec/pdp7/F-75_PDP-7userHbk_Jun65.pdf#page=62">"Program Interrupt Controller (PIC)"</a> <span class="cs1-format">(PDF)</span>. <a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/dec/pdp7/F-75_PDP-7userHbk_Jun65.pdf"><i>Users Handbook - PDP-7</i></a> <span class="cs1-format">(PDF)</span>. <a href="Digital_Equipment_Corporation" title="Digital Equipment Corporation">Digital Equipment Corporation</a>. 1965. pp.&nbsp;<a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/dec/pdp7/F-75_PDP-7userHbk_Jun65.pdf#page=63">48</a>. F-75. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220510164742/http://bitsavers.org/pdf/dec/pdp7/F-75_PDP-7userHbk_Jun65.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 10 May 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">20 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-78"><span class="mw-cite-backlink"><b><a href="#cite_ref-78">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/dec/pdp1/F25_PDP1_IO.pdf"><i>PDP-1 Input-Output Systems Manual</i></a> <span class="cs1-format">(PDF)</span>. <a href="Digital_Equipment_Corporation" title="Digital Equipment Corporation">Digital Equipment Corporation</a>. pp.&nbsp;<span class="nowrap">19–</span>20. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190125050839/http://bitsavers.org/pdf/dec/pdp1/F25_PDP1_IO.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 25 January 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-osc-ch2-p32_b-79"><span class="mw-cite-backlink"><b><a href="#cite_ref-osc-ch2-p32_b_79-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSilberschatz1994" class="citation book cs1">Silberschatz, Abraham (1994). <i>Operating System Concepts, Fourth Edition</i>. Addison-Wesley. p.&nbsp;32. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-50480-4</bdi>.</cite></span>
</li>
<li id="cite_note-osc-ch2-p34-80"><span class="mw-cite-backlink"><b><a href="#cite_ref-osc-ch2-p34_80-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSilberschatz1994" class="citation book cs1">Silberschatz, Abraham (1994). <i>Operating System Concepts, Fourth Edition</i>. Addison-Wesley. p.&nbsp;34. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-50480-4</bdi>.</cite></span>
</li>
<li id="cite_note-sco-ch5-p295-81"><span class="mw-cite-backlink">^ <a href="#cite_ref-sco-ch5-p295_81-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sco-ch5-p295_81-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFTanenbaum1990" class="citation book cs1">Tanenbaum, Andrew S. (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/295"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/295">295</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-854662-5</bdi>.</cite></span>
</li>
<li id="cite_note-sco-ch5-p309-82"><span class="mw-cite-backlink">^ <a href="#cite_ref-sco-ch5-p309_82-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sco-ch5-p309_82-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFTanenbaum1990" class="citation book cs1">Tanenbaum, Andrew S. (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/309"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/309">309</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-854662-5</bdi>.</cite></span>
</li>
<li id="cite_note-sco-ch5-p310-83"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-ch5-p310_83-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFTanenbaum1990" class="citation book cs1">Tanenbaum, Andrew S. (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/310"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/310">310</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-854662-5</bdi>.</cite></span>
</li>
<li id="cite_note-Operating_System-85"><span class="mw-cite-backlink"><b><a href="#cite_ref-Operating_System_85-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFStallings2008" class="citation book cs1">Stallings, William (2008). <i>Computer Organization &amp; Architecture</i>. New Delhi: Prentice-Hall of India Private Limited. p.&nbsp;267. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-81-203-2962-1</bdi>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014129-86"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014129_86-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;129.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018159-87"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018159_87-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;159.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014130-88"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014130_88-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;130.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014131-89"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014131_89-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;131.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014157,_159-90"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014157,_159_90-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;157, 159.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014139-91"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014139_91-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;139.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018160-92"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018160_92-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;160.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014183-93"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014183_93-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;183.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018162-94"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018162_94-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;162.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018162–163-95"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018162–163_95-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, pp.&nbsp;162–163.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018164-96"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018164_96-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;164.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014492,_517-97"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014492,_517_97-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;492, 517.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023259–260-98"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023259–260_98-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;259–260.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014517,_530-99"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014517,_530_99-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;517, 530.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023260-100"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023260_100-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;260.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014492–493-101"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014492–493_101-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;492–493.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014496-102"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014496_102-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;496.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014496–497-103"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014496–497_103-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;496–497.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023274–275-104"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023274–275_104-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;274–275.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014502–504-105"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014502–504_105-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;502–504.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014507-106"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014507_106-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;507.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014508-107"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014508_107-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;508.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023359-108"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023359_108-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;359.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014545-109"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014545_109-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;545.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014546-110"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEAndersonDahlin2014546_110-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEAndersonDahlin2014546_110-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;546.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014547-111"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014547_111-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;547.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014589,_591-112"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014589,_591_112-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;589, 591.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014591–592-113"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAndersonDahlin2014591–592_113-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, pp.&nbsp;591–592.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023385–386-114"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023385–386_114-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;385–386.</span>
</li>
<li id="cite_note-FOOTNOTEAndersonDahlin2014592-115"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEAndersonDahlin2014592_115-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEAndersonDahlin2014592_115-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFAndersonDahlin2014">Anderson &amp; Dahlin 2014</a>, p.&nbsp;592.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023605–606-116"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023605–606_116-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;605–606.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023608-117"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023608_117-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;608.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023609-118"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023609_118-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;609.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023609–610-119"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023609–610_119-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;609–610.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023612-120"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos2023612_120-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos2023612_120-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;612.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023648,_657-121"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023648,_657_121-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;648, 657.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023668–669,_674-122"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023668–669,_674_122-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;668–669, 674.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023679–680-123"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023679–680_123-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;679–680.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023605,_617–618-124"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023605,_617–618_124-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;605, 617–618.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023681–682-125"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023681–682_125-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;681–682.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023683-126"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023683_126-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;683.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023685-127"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023685_127-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;685.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023689-128"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023689_128-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;689.</span>
</li>
<li id="cite_note-FOOTNOTERichetBouaynaya202392-129"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTERichetBouaynaya202392_129-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFRichetBouaynaya2023">Richet &amp; Bouaynaya 2023</a>, p.&nbsp;92.</span>
</li>
<li id="cite_note-FOOTNOTERichetBouaynaya202392–93-130"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTERichetBouaynaya202392–93_130-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFRichetBouaynaya2023">Richet &amp; Bouaynaya 2023</a>, pp.&nbsp;92–93.</span>
</li>
<li id="cite_note-FOOTNOTEBerntssoStrandénWarg2017130–131-131"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEBerntssoStrandénWarg2017130–131_131-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFBerntssoStrandénWarg2017">Berntsso, Strandén &amp; Warg 2017</a>, pp.&nbsp;130–131.<span class="error harv-error" style="display: none; font-size:100%"> sfn error: no target: CITEREFBerntssoStrandénWarg2017 (help)</span></span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023611-132"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023611_132-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;611.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023396,_402-133"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023396,_402_133-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;396, 402.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023395,_408-134"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023395,_408_134-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;395, 408.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023402-135"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023402_135-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;402.</span>
</li>
<li id="cite_note-136"><span class="mw-cite-backlink"><b><a href="#cite_ref-136">^</a></b></span> <span class="reference-text"><cite id="CITEREFHolwerda2009" class="citation web cs1">Holwerda, Thom (20 December 2009). <a rel="nofollow" class="external text" href="https://www.osnews.com/story/22638/my-os-is-less-hobby-than-yours/">"My OS Is Less Hobby than Yours"</a>. <i>OS News</i><span class="reference-accessdate">. Retrieved <span class="nowrap">4 June</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018779–780-137"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018779–780_137-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, pp.&nbsp;779–780.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023713–714-138"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023713–714_138-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;713–714.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018780-139"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018780_139-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018780_139-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;780.</span>
</li>
<li id="cite_note-140"><span class="mw-cite-backlink"><b><a href="#cite_ref-140">^</a></b></span> <span class="reference-text"><cite id="CITEREFVaughan-Nichols2022" class="citation news cs1">Vaughan-Nichols, Steven (2022). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/linus-torvalds-prepares-to-move-the-linux-kernel-to-modern-c/">"Linus Torvalds prepares to move the Linux kernel to modern C"</a>. <i>ZDNET</i><span class="reference-accessdate">. Retrieved <span class="nowrap">7 February</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018781-141"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018781_141-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;781.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023715–716-142"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023715–716_142-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;715–716.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023793–794-143"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023793–794_143-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;793–794.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023793-144"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023793_144-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;793.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20231021–1022-145"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos20231021–1022_145-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, pp.&nbsp;1021–1022.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos2023871-146"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaumBos2023871_146-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;871.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018826-147"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018826_147-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;826.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20231035-148"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos20231035_148-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos20231035_148-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;1035.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaumBos20231036-149"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTETanenbaumBos20231036_149-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTETanenbaumBos20231036_149-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaumBos2023">Tanenbaum &amp; Bos 2023</a>, p.&nbsp;1036.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018821-150"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018821_150-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;821.</span>
</li>
<li id="cite_note-FOOTNOTESilberschatz_et_al.2018827-151"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESilberschatz_et_al.2018827_151-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSilberschatz_et_al.2018">Silberschatz et al. 2018</a>, p.&nbsp;827.</span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */


.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}


/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><cite id="CITEREFAndersonDahlin2014" class="citation book cs1"><a href="Thomas_E._Anderson" title="Thomas E. Anderson">Anderson, Thomas</a>; Dahlin, Michael (2014). <i>Operating Systems: Principles and Practice</i>. Recursive Books. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-9856735-2-9</bdi>.</cite></li>
<li><cite id="CITEREFAuslanderLarkinScherr1981" class="citation journal cs1">Auslander, M. A.; Larkin, D. C.; Scherr, A. L. (September 1981). "The Evolution of the MVS Operating System". <i>IBM Journal of Research and Development</i>. <b>25</b> (5): <span class="nowrap">471–</span>482. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1147%2Frd.255.0471">10.1147/rd.255.0471</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0018-8646">0018-8646</a>.</cite></li>
<li><cite id="CITEREFBerntssonStrandénWarg2017" class="citation book cs1">Berntsson, Petter Sainio; Strandén, Lars; Warg, Fredrik (2017). <i>Evaluation of Open Source Operating Systems for Safety-Critical Applications</i>. Springer International Publishing. pp.&nbsp;<span class="nowrap">117–</span>132. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-319-65948-0</bdi>.</cite></li>
<li><cite id="CITEREFDeitelDeitel,_PaulChoffnes,_David2015" class="citation book cs1">Deitel, Harvey M.; Deitel, Paul; Choffnes, David (25 December 2015). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/modernoperatings00tane"><i>Operating Systems</i></a></span>. Pearson/Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-092641-8</bdi>.</cite></li>
<li><cite id="CITEREFBicShaw,_Alan_C.2003" class="citation book cs1">Bic, Lubomur F.; Shaw, Alan C. (2003). <i>Operating Systems</i>. Pearson: <a href="Prentice_Hall" title="Prentice Hall">Prentice Hall</a>.</cite></li>
<li><cite id="CITEREFSilberschatzGalvin,_PeterGagne,_Greg2008" class="citation book cs1">Silberschatz, Avi; Galvin, Peter; Gagne, Greg (2008). <i>Operating Systems Concepts</i>. <a href="John_Wiley_%26_Sons" class="mw-redirect" title="John Wiley &amp; Sons">John Wiley &amp; Sons</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-470-12872-5</bdi>.</cite></li>
<li><cite id="CITEREFO'BrienMarakas2011" class="citation book cs1">O'Brien, J. A.; Marakas, G. M. (2011). <i>Management Information Systems</i> (10th&nbsp;ed.). McGraw-Hill Irwin.</cite></li>
<li><cite id="CITEREFLevaMaggioPapadopoulosTerraneo2013" class="citation book cs1">Leva, Alberto; Maggio, Martina; Papadopoulos, Alessandro Vittorio; Terraneo, Federico (2013). <i>Control-based Operating System Design</i>. <a href="Institution_of_Engineering_and_Technology" title="Institution of Engineering and Technology">IET</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-84919-609-3</bdi>.</cite></li>
<li><cite id="CITEREFRichetBouaynaya2023" class="citation journal cs1">Richet, Jean-Loup; Bouaynaya, Wafa (2023). <a rel="nofollow" class="external text" href="https://www.cairn.info/revue-systemes-d-information-et-management-2023-1-page-87.htm.">"Understanding and Managing Complex Software Vulnerabilities: An Empirical Analysis of Open-Source Operating Systems"</a>. <i>Systèmes d'information &amp; management</i>. <b>28</b> (1): <span class="nowrap">87–</span>114. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.54695%2Fsim.28.1.0087">10.54695/sim.28.1.0087</a> (inactive 12 July 2025).</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite journal}}</code>: CS1 maint: DOI inactive as of July 2025 (link)</span></li>
<li><cite id="CITEREFSilberschatz_et_al.2018" class="citation book cs1">Silberschatz, Abraham; Galvin, Peter B.; Gagne, Greg (2018). <a rel="nofollow" class="external text" href="https://archive.org/details/operating-system-concepts-10th"><i>Operating System Concepts</i></a> (10&nbsp;ed.). Wiley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-119-32091-3</bdi>.</cite></li>
<li><cite id="CITEREFTanenbaumBos2023" class="citation book cs1">Tanenbaum, Andrew S.; Bos, Herbert (2023). <i>Modern Operating Systems, Global Edition</i>. Pearson Higher Ed. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-292-72789-9</bdi>.</cite></li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */


.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */


@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}


/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */


.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}


/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Look up <i><b><a href="https://en.wiktionary.org/wiki/Special:Search/operating_system" class="extiw external" title="wiktionary:Special:Search/operating system">operating system</a></b></i> in Wiktionary, the free dictionary.</div></div>
</div>
<div class="side-box side-box-right sistersitebox">
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Operating_systems" class="extiw external" title="commons:Category:Operating systems">Operating systems</a></span>.</div></div>
</div>
<div class="side-box side-box-right sistersitebox">
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikiversity has learning resources about <i><b><a href="https://en.wikiversity.org/wiki/Operating_Systems" class="extiw external" title="v:Operating Systems">Operating Systems</a></b></i></div></div>
</div>
<ul><li><a rel="nofollow" class="external text" href="http://www.cbi.umn.edu/iterations/haigh.html">Multics History</a> and the history of operating systems</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Operating_systems310" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Operating_systems310" style="font-size:114%;margin:0 4em"></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Comparison_of_operating_systems" title="Comparison of operating systems">Comparison</a></li>
<li><a href="Forensic_software_engineering" title="Forensic software engineering">Forensic engineering</a></li>
<li><a href="History_of_operating_systems" title="History of operating systems">History</a></li>
<li><a href="List_of_operating_systems" title="List of operating systems">List</a></li>
<li><a href="Timeline_of_operating_systems" title="Timeline of operating systems">Timeline</a></li>
<li><a href="Usage_share_of_operating_systems" title="Usage share of operating systems">Usage share</a></li>
<li><a href="Comparison_of_user_features_of_operating_systems" title="Comparison of user features of operating systems">User features comparison</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Variants</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Disk_operating_system" title="Disk operating system">Disk operating system</a></li>
<li><a href="Distributed_operating_system" title="Distributed operating system">Distributed operating system</a></li>
<li><a href="Embedded_operating_system" title="Embedded operating system">Embedded operating system</a></li>
<li><a href="Hobbyist_operating_system" title="Hobbyist operating system">Hobbyist operating system</a></li>
<li><a href="Just_enough_operating_system" title="Just enough operating system">Just enough operating system</a></li>
<li><a href="Mobile_operating_system" title="Mobile operating system">Mobile operating system</a></li>
<li><a href="Network_operating_system" title="Network operating system">Network operating system</a></li>
<li><a href="Object-oriented_operating_system" title="Object-oriented operating system">Object-oriented operating system</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time operating system</a></li>
<li><a href="Supercomputer_operating_system" title="Supercomputer operating system">Supercomputer operating system</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Kernel_(operating_system)" title="Kernel (operating system)">Kernel</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em"><a href="Computer_architecture" title="Computer architecture">Architectures</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Exokernel" title="Exokernel">Exokernel</a></li>
<li><a href="Hybrid_kernel" title="Hybrid kernel">Hybrid</a></li>
<li><a href="Microkernel" title="Microkernel">Microkernel</a></li>
<li><a href="Monolithic_kernel" title="Monolithic kernel">Monolithic</a></li>
<li><a href="Multikernel" title="Multikernel">Multikernel</a></li>
<li><a href="Vkernel" title="Vkernel">vkernel</a></li>
<li><a href="Rump_kernel" title="Rump kernel">Rump kernel</a></li>
<li><a href="Unikernel" title="Unikernel">Unikernel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em">Components</th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Device_driver" title="Device driver">Device driver</a></li>
<li><a href="Loadable_kernel_module" title="Loadable kernel module">Loadable kernel module</a></li>
<li><a href="User_space_and_kernel_space" title="User space and kernel space">User space and kernel space</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Process_management_(computing)" title="Process management (computing)">Process management</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_multitasking" title="Computer multitasking">Computer multitasking</a> (<a href="Cooperative_multitasking" title="Cooperative multitasking">Cooperative</a>, <a href="Preemption_(computing)" title="Preemption (computing)">Preemptive</a>)</li>
<li><a href="Context_switch" title="Context switch">Context switch</a></li>
<li><a href="Interrupt" title="Interrupt">Interrupt</a></li>
<li><a href="Inter-process_communication" title="Inter-process communication">IPC</a></li>
<li><a href="Process_(computing)" title="Process (computing)">Process</a></li>
<li><a href="Process_control_block" title="Process control block">Process control block</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time</a></li>
<li><a href="Thread_(computing)" title="Thread (computing)">Thread</a></li>
<li><a href="Time-sharing" title="Time-sharing">Time-sharing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em"><a href="Scheduling_(computing)" title="Scheduling (computing)">Scheduling<br>algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fixed-priority_pre-emptive_scheduling" title="Fixed-priority pre-emptive scheduling">Fixed-priority preemptive</a></li>
<li><a href="Multilevel_feedback_queue" title="Multilevel feedback queue">Multilevel feedback queue</a></li>
<li><a href="Round-robin_scheduling" title="Round-robin scheduling">Round-robin</a></li>
<li><a href="Shortest_job_next" title="Shortest job next">Shortest job next</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Memory_management_(operating_systems)" title="Memory management (operating systems)">Memory management</a>,<br><a href="System_resource" title="System resource">resource</a> protection</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bus_error" title="Bus error">Bus error</a></li>
<li><a href="General_protection_fault" title="General protection fault">General protection fault</a></li>
<li><a href="Memory_paging" title="Memory paging">Memory paging</a></li>
<li><a href="Memory_protection" title="Memory protection">Memory protection</a></li>
<li><a href="Protection_ring" title="Protection ring">Protection ring</a></li>
<li><a href="Segmentation_fault" title="Segmentation fault">Segmentation fault</a></li>
<li><a href="Virtual_memory" title="Virtual memory">Virtual memory</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Non-volatile_memory" title="Non-volatile memory">Storage</a> access,<br><a href="File_system" title="File system">file systems</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Booting#BOOT-LOADER" title="Booting">Boot loader</a></li>
<li><a href="Defragmentation" title="Defragmentation">Defragmentation</a></li>
<li><a href="Device_file" title="Device file">Device file</a></li>
<li><a href="File_attribute" title="File attribute">File attribute</a></li>
<li><a href="Inode" title="Inode">Inode</a></li>
<li><a href="Journaling_file_system" title="Journaling file system">Journal</a></li>
<li><a href="Disk_partitioning" title="Disk partitioning">Partition</a></li>
<li><a href="Virtual_file_system" title="Virtual file system">Virtual file system</a></li>
<li><a href="Virtual_tape_library" title="Virtual tape library">Virtual tape library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Supporting concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="API" title="API">API</a></li>
<li><a href="Computer_network" title="Computer network">Computer network</a></li>
<li><a href="Hardware_abstraction" title="Hardware abstraction">HAL</a></li>
<li><a href="Live_CD" title="Live CD">Live CD</a></li>
<li><a href="Live_USB" title="Live USB">Live USB</a></li>
<li><a href="Shell_(computing)" title="Shell (computing)">Shell</a>
<ul><li><a href="Command-line_interface" title="Command-line interface">CLI</a></li>
<li><a href="User_interface" title="User interface">User interface</a></li></ul></li>
<li><a href="Preboot_Execution_Environment" title="Preboot Execution Environment">PXE</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Computer_science1050" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Computer_science1050" style="font-size:114%;margin:0 4em"><a href="Computer_science" title="Computer science">Computer science</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>Note: This template roughly follows the 2012 <a href="ACM_Computing_Classification_System" title="ACM Computing Classification System">ACM Computing Classification System</a>.</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_hardware" title="Computer hardware">Hardware</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Printed_circuit_board" title="Printed circuit board">Printed circuit board</a></li>
<li><a href="Peripheral" title="Peripheral">Peripheral</a></li>
<li><a href="Integrated_circuit" title="Integrated circuit">Integrated circuit</a></li>
<li><a href="Very-large-scale_integration" title="Very-large-scale integration">Very-large-scale integration</a></li>
<li><a href="System_on_a_chip" title="System on a chip">System on a chip</a> (SoC)</li>
<li><a href="Green_computing" title="Green computing">Energy consumption</a> (green computing)</li>
<li><a href="Electronic_design_automation" title="Electronic design automation">Electronic design automation</a></li>
<li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li>
<li><a href="Processor_(computing)" title="Processor (computing)">Processor</a></li>
<li><a href="List_of_computer_size_categories" title="List of computer size categories">Size</a> / <a href="Form_factor_(design)" title="Form factor (design)">Form</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Computer systems organization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_architecture" title="Computer architecture">Computer architecture</a></li>
<li><a href="Computational_complexity" title="Computational complexity">Computational complexity</a></li>
<li><a href="Dependability" title="Dependability">Dependability</a></li>
<li><a href="Embedded_system" title="Embedded system">Embedded system</a></li>
<li><a href="Real-time_computing" title="Real-time computing">Real-time computing</a></li>
<li><a href="Cyber-physical_system" title="Cyber-physical system">Cyber-physical system</a></li>
<li><a href="Fault_tolerance" title="Fault tolerance">Fault tolerance</a></li>
<li><a href="Wireless_sensor_network" title="Wireless sensor network">Wireless sensor network</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_network" title="Computer network">Networks</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Network_architecture" title="Network architecture">Network architecture</a></li>
<li><a href="Communication_protocol" title="Communication protocol">Network protocol</a></li>
<li><a href="Networking_hardware" title="Networking hardware">Network components</a></li>
<li><a href="Network_scheduler" title="Network scheduler">Network scheduler</a></li>
<li><a href="Network_performance" title="Network performance">Network performance evaluation</a></li>
<li><a href="Network_service" title="Network service">Network service</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software organization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Interpreter_(computing)" title="Interpreter (computing)">Interpreter</a></li>
<li><a href="Middleware" title="Middleware">Middleware</a></li>
<li><a href="Virtual_machine" title="Virtual machine">Virtual machine</a></li>

<li><a href="Software_quality" title="Software quality">Software quality</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_theory" title="Programming language theory">Software notations</a> and <a href="Programming_tool" title="Programming tool">tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Programming_paradigm" title="Programming paradigm">Programming paradigm</a></li>
<li><a href="Programming_language" title="Programming language">Programming language</a></li>
<li><a href="Compiler_construction" class="mw-redirect" title="Compiler construction">Compiler</a></li>
<li><a href="Domain-specific_language" title="Domain-specific language">Domain-specific language</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling language</a></li>
<li><a href="Software_framework" title="Software framework">Software framework</a></li>
<li><a href="Integrated_development_environment" title="Integrated development environment">Integrated development environment</a></li>
<li><a href="Software_configuration_management" title="Software configuration management">Software configuration management</a></li>
<li><a href="Library_(computing)" title="Library (computing)">Software library</a></li>
<li><a href="Software_repository" title="Software repository">Software repository</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Software_development" title="Software development">Software development</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Control_flow" title="Control flow">Control variable</a></li>
<li><a href="Software_development_process" title="Software development process">Software development process</a></li>
<li><a href="Requirements_analysis" title="Requirements analysis">Requirements analysis</a></li>
<li><a href="Software_design" title="Software design">Software design</a></li>
<li><a href="Software_construction" title="Software construction">Software construction</a></li>
<li><a href="Software_deployment" title="Software deployment">Software deployment</a></li>
<li><a href="Software_engineering" title="Software engineering">Software engineering</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Software maintenance</a></li>
<li><a href="Programming_team" title="Programming team">Programming team</a></li>
<li><a href="Open-source_software" title="Open-source software">Open-source model</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Theory_of_computation" title="Theory of computation">Theory of computation</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Model_of_computation" title="Model of computation">Model of computation</a>
<ul><li><a href="Stochastic_computing" title="Stochastic computing">Stochastic</a></li></ul></li>
<li><a href="Formal_language" title="Formal language">Formal language</a></li>
<li><a href="Automata_theory" title="Automata theory">Automata theory</a></li>
<li><a href="Computability_theory" title="Computability theory">Computability theory</a></li>
<li><a href="Computational_complexity_theory" title="Computational complexity theory">Computational complexity theory</a></li>
<li><a href="Logic_in_computer_science" title="Logic in computer science">Logic</a></li>
<li><a href="Semantics_(computer_science)" title="Semantics (computer science)">Semantics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Algorithm" title="Algorithm">Algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Algorithm_design" class="mw-redirect" title="Algorithm design">Algorithm design</a></li>
<li><a href="Analysis_of_algorithms" title="Analysis of algorithms">Analysis of algorithms</a></li>
<li><a href="Algorithmic_efficiency" title="Algorithmic efficiency">Algorithmic efficiency</a></li>
<li><a href="Randomized_algorithm" title="Randomized algorithm">Randomized algorithm</a></li>
<li><a href="Computational_geometry" title="Computational geometry">Computational geometry</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mathematics of <a href="Computing" title="Computing">computing</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Discrete_mathematics" title="Discrete mathematics">Discrete mathematics</a></li>
<li><a href="Probability" title="Probability">Probability</a></li>
<li><a href="Statistics" title="Statistics">Statistics</a></li>
<li><a href="Mathematical_software" title="Mathematical software">Mathematical software</a></li>
<li><a href="Information_theory" title="Information theory">Information theory</a></li>
<li><a href="Mathematical_analysis" title="Mathematical analysis">Mathematical analysis</a></li>
<li><a href="Numerical_analysis" title="Numerical analysis">Numerical analysis</a></li>
<li><a href="Theoretical_computer_science" title="Theoretical computer science">Theoretical computer science</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Information_system" title="Information system">Information systems</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database" title="Database">Database management system</a></li>
<li><a href="Computer_data_storage" title="Computer data storage">Information storage systems</a></li>
<li><a href="Enterprise_information_system" title="Enterprise information system">Enterprise information system</a></li>
<li><a href="Social_software" title="Social software">Social information systems</a></li>
<li><a href="Geographic_information_system" title="Geographic information system">Geographic information system</a></li>
<li><a href="Decision_support_system" title="Decision support system">Decision support system</a></li>
<li><a href="Industrial_process_control" title="Industrial process control">Process control system</a></li>
<li><a href="Multimedia_database" title="Multimedia database">Multimedia information system</a></li>
<li><a href="Data_mining" title="Data mining">Data mining</a></li>
<li><a href="Digital_library" title="Digital library">Digital library</a></li>
<li><a href="Computing_platform" title="Computing platform">Computing platform</a></li>
<li><a href="Digital_marketing" title="Digital marketing">Digital marketing</a></li>
<li><a href="World_Wide_Web" title="World Wide Web">World Wide Web</a></li>
<li><a href="Information_retrieval" title="Information retrieval">Information retrieval</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_security" title="Computer security">Security</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cryptography" title="Cryptography">Cryptography</a></li>
<li><a href="Formal_methods" title="Formal methods">Formal methods</a></li>
<li><a href="Security_hacker" title="Security hacker">Security hacker</a></li>
<li><a href="Security_service_(telecommunication)" title="Security service (telecommunication)">Security services</a></li>
<li><a href="Intrusion_detection_system" title="Intrusion detection system">Intrusion detection system</a></li>
<li><a href="Hardware_security" title="Hardware security">Hardware security</a></li>
<li><a href="Network_security" title="Network security">Network security</a></li>
<li><a href="Information_security" title="Information security">Information security</a></li>
<li><a href="Application_security" title="Application security">Application security</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a class="external text external" href="https://en.wikipedia.org/wiki/Human-centered_computing">Human–centered computing</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Interaction_design" title="Interaction design">Interaction design</a></li>
<li><a href="Augmented_reality" title="Augmented reality">Augmented reality</a></li>
<li><a href="Virtual_reality" title="Virtual reality">Virtual reality</a></li>
<li><a href="Social_computing" title="Social computing">Social computing</a></li>
<li><a href="Ubiquitous_computing" title="Ubiquitous computing">Ubiquitous computing</a></li>
<li><a href="Visualization_(graphics)" title="Visualization (graphics)">Visualization</a></li>
<li><a href="Computer_accessibility" title="Computer accessibility">Accessibility</a></li>
<li><a href="Human%E2%80%93computer_interaction" title="Human–computer interaction">Human–computer interaction</a></li>
<li><a href="Mobile_computing" title="Mobile computing">Mobile computing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Concurrency_(computer_science)" title="Concurrency (computer science)">Concurrency</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Concurrent_computing" title="Concurrent computing">Concurrent computing</a></li>
<li><a href="Parallel_computing" title="Parallel computing">Parallel computing</a></li>
<li><a href="Distributed_computing" title="Distributed computing">Distributed computing</a></li>
<li><a href="Multithreading_(computer_architecture)" title="Multithreading (computer architecture)">Multithreading</a></li>
<li><a href="Multiprocessing" title="Multiprocessing">Multiprocessing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Artificial_intelligence" title="Artificial intelligence">Artificial intelligence</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Natural_language_processing" title="Natural language processing">Natural language processing</a></li>
<li><a href="Knowledge_representation_and_reasoning" title="Knowledge representation and reasoning">Knowledge representation and reasoning</a></li>
<li><a href="Computer_vision" title="Computer vision">Computer vision</a></li>
<li><a href="Automated_planning_and_scheduling" title="Automated planning and scheduling">Automated planning and scheduling</a></li>
<li><a href="Mathematical_optimization" title="Mathematical optimization">Search methodology</a></li>
<li><a href="Control_theory" title="Control theory">Control method</a></li>
<li><a href="Philosophy_of_artificial_intelligence" title="Philosophy of artificial intelligence">Philosophy of artificial intelligence</a></li>
<li><a href="Distributed_artificial_intelligence" title="Distributed artificial intelligence">Distributed artificial intelligence</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Machine_learning" title="Machine learning">Machine learning</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Supervised_learning" title="Supervised learning">Supervised learning</a></li>
<li><a href="Unsupervised_learning" title="Unsupervised learning">Unsupervised learning</a></li>
<li><a href="Reinforcement_learning" title="Reinforcement learning">Reinforcement learning</a></li>
<li><a href="Multi-task_learning" title="Multi-task learning">Multi-task learning</a></li>
<li><a href="Cross-validation_(statistics)" title="Cross-validation (statistics)">Cross-validation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_graphics" title="Computer graphics">Graphics</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_animation" title="Computer animation">Animation</a></li>
<li><a href="Rendering_(computer_graphics)" title="Rendering (computer graphics)">Rendering</a></li>
<li><a href="Photograph_manipulation" title="Photograph manipulation">Photograph manipulation</a></li>
<li><a href="Graphics_processing_unit" title="Graphics processing unit">Graphics processing unit</a></li>
<li><a href="Image_compression" title="Image compression">Image compression</a></li>
<li><a href="Solid_modeling" title="Solid modeling">Solid modeling</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Applied computing</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Quantum_computing" title="Quantum computing">Quantum computing</a></li>
<li><a href="E-commerce" title="E-commerce">E-commerce</a></li>
<li><a href="Enterprise_software" title="Enterprise software">Enterprise software</a></li>
<li><a href="Computational_mathematics" title="Computational mathematics">Computational mathematics</a></li>
<li><a href="Computational_physics" title="Computational physics">Computational physics</a></li>
<li><a href="Computational_chemistry" title="Computational chemistry">Computational chemistry</a></li>
<li><a href="Computational_biology" title="Computational biology">Computational biology</a></li>
<li><a href="Computational_social_science" title="Computational social science">Computational social science</a></li>
<li><a href="Computational_engineering" title="Computational engineering">Computational engineering</a></li>
<li>Differentiable computing</li>
<li><a href="Health_informatics" title="Health informatics">Computational healthcare</a></li>
<li><a href="Digital_art" title="Digital art">Digital art</a></li>
<li><a href="Electronic_publishing" title="Electronic publishing">Electronic publishing</a></li>
<li><a href="Cyberwarfare" title="Cyberwarfare">Cyberwarfare</a></li>
<li><a href="Electronic_voting" title="Electronic voting">Electronic voting</a></li>
<li><a href="Video_game" title="Video game">Video games</a></li>
<li><a href="Word_processor" title="Word processor">Word processing</a></li>
<li><a href="Operations_research" title="Operations research">Operations research</a></li>
<li><a href="Educational_technology" title="Educational technology">Educational technology</a></li>
<li><a href="Document_management_system" title="Document management system">Document management</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li>
<li><span class="noviewer" typeof="mw:File"><span title="Outline"></span></span> <a href="Outline_of_computer_science" title="Outline of computer science">Outline</a></li>
<li><span class="noviewer" typeof="mw:File"><span></span></span> Glossaries</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */


.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q9135#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata1359" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q9135#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata1359" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">International</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.worldcat.org/fast/1046280">FAST</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4006216-8">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh85094982">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb119333481">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb119333481">BnF data</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.ndl.go.jp/auth/ndlna/00865121">Japan</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="operační systémy"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&amp;local_base=aut&amp;ccl_term=ica=ph115593&amp;CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007548430005171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/fdd4db0c-039b-414c-8505-5c3561688acb">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-23" href="https://en.wikipedia.org/wiki/?title=Operating_system&amp;oldid=1302082989">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>